单片机串口接收频率太高导致串口死机求指点

2020-01-17 19:04发布

单片机串口波特率设置在115200,100HZ接收和处理外来数据包然后通过SPI发出,现象是处理一两分钟串口就不再发数了
我想可能是单片机波特率和通信频率过高导致单片机串口工作异常,希望大家给解释一下愿意,提供一些思路
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
hechengzhu04
1楼-- · 2020-01-20 02:38
死机,一般来说跟串口速率及发送频次没有直接关系。请楼主查一下串口中断服务程序,特别查查接收缓存数组,有没有下表越界情况。超出最大缓存后的数据一定要抛掉,否则内存溢出,会出现意想不到的问题。另外,接收完成后,解析命令的程序是否存在数组越界的情况。再有,SPI程序是否再串口程序干扰下,导致缓存溢出。这三处查查,可能会查到问题
peecehood
2楼-- · 2020-01-20 04:12
不要用想的,测试出结果再来讨论也不迟。
52HLX
3楼-- · 2020-01-20 04:28
检查你的串口中断接收函数,原则上只做接收数据,不做处理。可能死到串口中断函数里面了
michael.yang
4楼-- · 2020-01-20 09:56
1、程序不要出现死等某标志的逻辑。
2、另外加个超时初始化处理,就是长时间串口收不到数据,就重新进行一次串口初始化。

一周热门 更多>