STM32
直播中

王丽

8年用户 1422经验值
私信 关注
[问答]

STM32F103VET6死机的原因?

程序中含大量频繁中断,同时UART频繁(DMA方式)通讯。
通讯时,经常死机,而且不光是通讯死机,整个程序死机。
用JLINK SWD 下载程序并运行就不会死机,但是断电重启后,就容易死机。再重新JLINK下载运行,OK了。总之一断电再重启,易死机。JLINK下载跳到MAIN函数就好。

是不是JLINK下载时运行到MAIN时,内部时钟建立顺序会对此有影响?

回帖(1)

梅利号

2024-5-15 16:44:59
STM32F103VET6死机的原因可能有以下几点:

1. 中断冲突:程序中包含大量频繁中断,可能导致中断优先级冲突,从而引发死机。建议检查中断优先级设置,确保中断处理顺序正确。

2. UART DMA通讯问题:UART频繁使用DMA方式通讯可能导致数据传输不稳定,从而引发死机。建议检查UART和DMA配置,确保通讯参数正确。

3. 时钟配置问题:STM32F103VET6的时钟配置可能影响程序运行稳定性。建议检查时钟源、时钟分频等设置,确保时钟配置正确。

4. 电源问题:断电重启可能导致电源不稳定,从而引发死机。建议检查电源电路,确保电源稳定。

5. JLINK下载问题:使用JLINK下载程序并运行时,可能由于下载过程中的时钟建立顺序或其他原因,导致程序运行稳定。建议检查JLINK下载设置,确保下载过程正确。

综上所述,要解决STM32F103VET6死机问题,可以从以下几个方面进行排查和优化:

1. 优化中断处理,避免中断冲突。
2. 检查UART和DMA配置,确保通讯稳定。
3. 检查时钟配置,确保时钟稳定。
4. 检查电源电路,确保电源稳定。
5. 检查JLINK下载设置,确保下载过程正确。

通过以上步骤,有望解决STM32F103VET6死机问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分