为什么我的调试助手的波特率非得调成19200,单片机才能正确的将接收的字节发出去?不过这种正确的现象仅当我是发一个字节,如果我发的是两个字节或者以上就会出错。如图。程序中我的波特率明明是设置为9600的,好奇怪。我另外试了单片机直接发数据,在调试助手上看是正确的。 两个问题:1。波特率不一样却能收数据? 2.发送的数据一旦大于一个字节,单片机发回的数据显示就会出错? (晶振7.3728MHZ) #include<reg51.h> void main() { unsigned char a; TMOD=0x20; TL1=256-24; TH1=0xff; SCON=0x70; PCON=0x00; TR1=1; while(1) { while(RI==0); RI=0; a=SBUF; SBUF=a; while(TI==0); TI=0; } }
|