串口同时收发数据卡死问题

Posted jt930413

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了串口同时收发数据卡死问题相关的知识,希望对你有一定的参考价值。

技术图片

 

技术图片

单片机发送数据时最后会通过等待发送空标志位来等待数据发送完成,即通过uart往外发数据时,会通过“while(TI==0);”卡死等待数据发送完成,若在数据发送完成后,先进入UART发送完成中断,会将TI标志清零,这个 时候,程序就会卡死在“while(TI==0);”,您可以在“while(TI==0);”加入超时判断机制,当超过一定的时间如果还没有等到TI标志置1,就强制退出“while(TI==0);”。此方法不好控制时间计时的最小间隔。可在中断函数中不清除TI标志位,在数据发送完成后由硬件清零。

 

以上是关于串口同时收发数据卡死问题的主要内容,如果未能解决你的问题,请参考以下文章

C语言变成实现串口收发数据

创龙DSP6748学习之RS485收发

做了了简易的串口收发数据界面,用LabVIEW做的,每次打开程序就运行了,但是第一次发

stm32串口通讯

想用C#写linux下的串口收发程序?

stm32 串口收发数据不稳定问题