|
|
上位机向下位机发数据卡死:检查驱动程序,与单片机的关系较小 下位机向上位机发数据卡死:单片机串口寄存器、中断配置有问题 具体用示波器或逻辑分析仪捕捉信号数据才能知道什么问题。 |
| 你没有开中断, void Send(u8 puts) //发送一个字符串 |
| 你没有开串口发送中断, void Send(u8 puts) //发送一个字符串 |
|
要改成这个样子才可以 void Send(u8 puts) //发送一个字符串 { SBUF = puts; while(!TI); TI=0; } 范例程序 bit busy;是全局变量 不是寄存器位检测标志 void UartSend(char dat) { while (busy); busy = 1; SBUF = dat; } |
| 你没有开串口发送中断, void Send(u8 puts) //发送一个字符串 { B_TX1_Busy = 1; SBUF = puts; while(B_TX1_Busy); } B_TX1_Busy永远不会等于0,正确的方法是{ SBUF = puts; while(!TI); TI = 0; |