#include <reg52.h>
void init_urat(void){ TMOD = 0x20;//定时器1为自动再装入8位计数器 TH1 = 0xfd; TL1 = 0xfd;//波特率:9600bps TR1 = 1; //启动定时器1:波特率发生器
SM0 = 0; SM1 = 1; //方式1 10位异步收发器(1位起始位+8位数据+1位停止位) 波特率可变 REN = 1;//允许接收 TI = 0; //发送标志位 RI = 0; //接收标志位 EA = 1; //总中断
ES = 1; //串口中断
}void main(void){ init_urat(); SBUF = 'i'; while(1);
}
发送一个i,串口调试助手显示接收到两个ii.
第一次发送完 TI不是已经是1了么?
谢谢。