标题:
求救:STM32F042K6T6高低温测试时死机
[打印本页]
作者:
callan
时间:
2017-6-22 18:00
标题:
求救:STM32F042K6T6高低温测试时死机
最近公司有个项目上面用的STM32F042K6T6做CAN通信。现在做高低温测试时总是死机,平时都是正常的,高温最高60度,低温最低-20度,死机不是发生在高温或者低温,而是发生在从60度恢复到0度或者从-20度恢复到0度。MCU已经使用了IWDG和WWDG,但是都起不到复位的作用,求救啊!
参考原理图.jpg
(189.63 KB, 下载次数: 149)
下载附件
2017-6-22 18:00 上传
参考原理图
作者:
yzwzfyz
时间:
2017-6-22 22:43
多半是:
程序中有死待某个标记,用C写的程序常有此问题(因为按正常逻辑及状况,这个标记一定会出现,程序未考虑循特殊情况的出现)。
比如:某个硬件在异常状态下给不出标记时,程序又死等它出现。
我一般比较注意有死等某个标记地方,在死等的语句中插入时间限制(时间由中间程序控制,计时与死待无关),等不到标记,但时间到了就跳出。
如何找到死等的点呢?
给程序运行加追踪器:
比如:程序有10个步骤或任务或其它什么,用一个寄存器R_RUN,运行到任务1就让R_RUN=1,运行到任务N就让R_RUN=N。也就是说只要知道R_RUN的值就能知道程序运行到什么任务(地方)。
当看门狗复位动作时,运行一个输出R_RUN的程序(写一个显示程序或其它可以输出的方式)
这样你就知道,程序死在什么地方了。任务分得越细越易找到问题。
作者:
qwert126
时间:
2017-6-23 09:25
不懂,完全看不懂
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1