STM32调试串口的时候卡在 B.

2019-07-20 01:59发布

最近在调试代码的时候遇到一个问题,串口5接了一个测距仪,每隔20ms都会通过串口5上报数据,然后我再通过串口1发送出来。
当只使能串口1和串口5的时候,程序可以正常执行没有什么问题。
使能串口1,串口2,串口5的时候,程序可以正常运行。
使能串口1,串口3,串口5的时候,程序可以正常运行。
但是当同时使能串口2和串口3的时候(同时使能串口1,串口2,串口3,串口5),一开始数据可以正常上报,但是过了一段时间后,整个程序直接卡死在如图所示的地方。
同时使能串口2,串口3,串口5的时候,也同样会发生卡死的情况。
我估计是不是串口中断方面存在冲突导致的?
希望可以有大神帮我解答一下!
十分滴感谢!!
各个串口的接收中断函数我贴在下面。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
DreamWaterPro
1楼-- · 2019-07-20 21:29
其实和B.这个汇编指令没有太大问题,但是楼主要注意,卡住时候,是在HardFault_Handler这个硬错误中断处理函数中的。
如果楼主在这个函数中加上调试信息,那么当出现这种问题时,就可以看到相应的错误信息。

硬错误的产生一般和不正确的地址操作有关,包括但不限于错误指向的函数指针,数组溢出(可能性比较大),写了野指针所指向的内存单元等等。楼主可以仔细排查一些这些相关的部分。
ichmarcel
2楼-- · 2019-07-20 22:57
 精彩回答 2  元偷偷看……
323232
3楼-- · 2019-07-21 01:04
 精彩回答 2  元偷偷看……
陈皮皮
4楼-- · 2019-07-21 05:25
mark一下,出现过类似的情况,找到问题没找到原因
sciencekn1
5楼-- · 2019-07-21 10:46
我这边碰到过,后来发现是开了中断,但是中断函数没写,或者没有清中断,就会出现这个问题。

一周热门 更多>