stm32f417串口中断收数据“死机”

2019-07-20 23:57发布

1.程序中只开启了串口接收中断,排除其他的干扰。2.实现功能:PC发送一帧数据,ARM回传接收到的帧数和错误帧数;
3.波特率为2.5MHZ,PC发送帧头ff ff ff ff ff ff + 帧长度 04 00 + 1024Byte数据(0-255循环);ARM接收到数据后,判断帧头是否满足,提取帧长度,接收数据并比较数据是否接收正确,如果错误则错误标志位加1.
将错误标志位,接收帧数量发送到PC机。

4.在DEBUG模式下,上位机发送1032byte/帧,帧间隔为10ms,发送几秒后,串口便“死机”了。

死机表现为:PC发送一帧数据,这时ARM应该回传接收到的帧数和错误帧数,但事实并没有回传任何数据。这时停止程序运行,发现程序停止在main函数中。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
qianyuyu
1楼-- · 2019-07-21 03:18
问题已经解决了。把中断里面的数据判断和组帧发送的操作都移到main函数中,同时加大缓存,将PC机发送间隔改为0ms都可以正常接收。深刻的认识到,与中断无关的操作不要放在中断中。
qianyuyu
2楼-- · 2019-07-21 06:01
 精彩回答 2  元偷偷看……

一周热门 更多>