[综合信息] 华大单片机串口BUG

[复制链接]
1910|3
 楼主| 狗啃模拟 发表于 2022-1-26 23:18 | 显示全部楼层 |阅读模式
华大单片机串口BUG
波特率较快时,发送使用查询,接收使用中断方式,波特率为115200,会死机,停在Uart_SendData函数,原因为,虽然发送是不开中断,但是接收会进入中断函数,此时刚好发送产生中断标志,一起把发送的中断完成标志清楚了,导致一直处于发送函数条不出来,解决方法如图二,在中断里面不清除发送标志位。
2597261f166327da0f.png

 楼主| 狗啃模拟 发表于 2022-1-26 23:42 | 显示全部楼层
martinhu 发表于 2022-1-27 14:35 | 显示全部楼层

你这个是很久之前的库了吧,现在还有这样的么????
wubangmi 发表于 2022-1-27 16:27 | 显示全部楼层
楼主说的bug还有一种情况就是本身MCU的UART接收和发送的buf是共用的,你接收数据比发送数据还快的话,也就是在发送的时候接收中断又来了,那么就导致一帧还没发送完成就被接收数据给冲掉了。所以UART发送完成标志位一直不置位。如果是这种情况就是不根据MCU本身的特性来,任性胡为之。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

1054

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部