串口同时收发数据卡死问题
Posted jt930413
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了串口同时收发数据卡死问题相关的知识,希望对你有一定的参考价值。
单片机发送数据时最后会通过等待发送空标志位来等待数据发送完成,即通过uart往外发数据时,会通过“while(TI==0);”卡死等待数据发送完成,若在数据发送完成后,先进入UART发送完成中断,会将TI标志清零,这个 时候,程序就会卡死在“while(TI==0);”,您可以在“while(TI==0);”加入超时判断机制,当超过一定的时间如果还没有等到TI标志置1,就强制退出“while(TI==0);”。此方法不好控制时间计时的最小间隔。可在中断函数中不清除TI标志位,在数据发送完成后由硬件清零。
以上是关于串口同时收发数据卡死问题的主要内容,如果未能解决你的问题,请参考以下文章