[其他ST产品] stm32的一个复位问题的定位

[复制链接]
891|10
 楼主| 在水一方00 发表于 2023-11-20 22:28 | 显示全部楼层 |阅读模式
stm32的一个复位问题的定位
1)芯片是:stm32f030c8t6
2)stm32 的程序使用了freertos,导致ram有些紧张。
3)stm32f030c8t6 的串口和 imx6ull 的串口进行连接。

问题现象
芯片运行中概率出现复位情形, 我的板子有个指示灯,狂闪说明复位了。 这个概率也不高。

56054655b6cfc7de9a.png

问题分析

老是概率复位,缩小范围到判断和通讯代码有关系,完全去掉通讯收发代码,保留中断,未发现复位。
添加通讯代码后,概率出现。

一直怀疑了好几天,反复看代码都未发现问题。


 楼主| 在水一方00 发表于 2023-11-20 22:28 | 显示全部楼层
后面设置断点在复位处,keil跟踪调用栈,抓住一次后才定位

8923655b6d1b22bdd.png
 楼主| 在水一方00 发表于 2023-11-20 22:28 | 显示全部楼层
问题解决
问题代码中(下面第一个图),串口发送函数timeout值是0xffff。 之前一直这么用没有出过问题,那么在发送成功不会产生超时,如果偶然有超时触发时就会有问题。
原因分析:硬件发送不出数据后超时,超时触发看门狗复位。
42549655b6d27f2588.png
 楼主| 在水一方00 发表于 2023-11-20 22:29 | 显示全部楼层
根据我发送的数据50个字节,timeout修改成64后未再出问题。
48833655b6d338f905.png
jf101 发表于 2023-11-30 12:32 | 显示全部楼层
楼主这个问题确实跟时间通讯有关系
stormwind123 发表于 2023-11-30 15:34 | 显示全部楼层
检查STM32的时钟配置是否正确。
laocuo1142 发表于 2023-11-30 15:34 | 显示全部楼层
如果确定是软件复位问题,检查程序代码中是否存在可能导致复位的原因。
probedog 发表于 2023-11-30 15:34 | 显示全部楼层
检查复位电路的设计和连接是否正确
stormwind123 发表于 2023-11-30 15:35 | 显示全部楼层
检查是否存在电磁干扰(EMI)或其他外部因素可能干扰STM32的正常工作。
classroom 发表于 2023-11-30 15:35 | 显示全部楼层
检查电源是否稳定,以及是否存在电压波动或其他电源问题
Undshing 发表于 2023-11-30 16:13 来自手机 | 显示全部楼层
时间的问题吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

581

帖子

0

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