stm32f429串口中断接收 PC串口工具发送的字符串 会丢失

2019-07-20 16:07发布

在接收PC串口工具发来的字符串时  大多会丢失后面的数据  收到的 为连续的数据  而且 奇怪的是  收到多少个字符  实际检测到  接收中断触发的次数就是接收到字符的个数,
中断为什么触发次数不够?中断处理函数很简洁  一点不累赘  无延迟等,哪位大神  能指点迷津
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
kmjvs
1楼-- · 2019-07-20 17:14
回复【15楼】正点原子:
---------------------------------
感谢版主  问题已解决  谢谢帮助  问题就是上面说的  两个函数都读取CR寄存器 的原因
kmjvs
2楼-- · 2019-07-20 22:27
 精彩回答 2  元偷偷看……
kmjvs
3楼-- · 2019-07-21 03:49
 精彩回答 2  元偷偷看……
kmjvs
4楼-- · 2019-07-21 04:33
感觉  板子接收中断响应结束 执行代码时  C的发送中断未执行完,在下一个循环开始时  会补上上次缺少的字符(补的不全,只能补一到两位,剩余丢失,后面接着新的开始)
正点原子
5楼-- · 2019-07-21 08:34
中断次数,等于发送数据个数,说明你的中断接收没有丢失,问题可能出现在传输过程之中,比如数据本身就发生了错误,这种情况,考虑硬件是不是有问题.
kmjvs
6楼-- · 2019-07-21 09:26
回复【5楼】正点原子:
---------------------------------
公司两块板子 都一样;老大说  可能是驱动配置有问题(接收几个字符触发一次中断,或是接收到buff里没有读出来),我觉得不合理啊!
429 能设置接收几个字符一次中断吗?有可能接收完了 还存在buff里  我看了 手册  寄存器只说 接收非空触发接收中断  未写明几个字符一次中断啊   也没有写缓存8/16/..../bit的  设置  请问有这设置吗

一周热门 更多>