已经解决是我的板子晶振是11.0592MHZ我配了12MHZ导致配错了波特率 |
#include "reg52.h" typedef unsigned char u8; typedef unsigned int u16; u8 x=0xff; void Uart1_Timer1_Init() { PCON |= 0x80; SCON=0x50; TMOD &= 0x0F; TMOD |= 0x20; TL1 = 0xF3; TH1 = 0xF3; ET1 = 0; TR1 = 1; ES=1; EA=1; } void main() { Uart1_Timer1_Init(); while(1) { P2=x; } } void Uart1_Interrupt() interrupt 4 { x=SBUF; RI=0; SBUF=x; while(!TI); TI=0; } |
请问你的晶振是否对应的波特率,设置是否正确, 我仿真的结果是没有问题的。没时间帮你试试实际的电路是否正确。 |
波特率有问题,串口通信最好用外部晶振11.0592Mhz。 |
你这代码写的好魔性,都在中断里处理数据???? |