stm32在自己建的工程不能跑在例程的工程内能跑怎么回事

stm32在自己建的工程不能跑在例程的工程内能跑怎么回事,第1张

Stm32不能跑了,程序跑飞这类的问题,我之前在开发过程中就遇到过,造成这种不良,有很多可能的原因,软件硬件都有可能,需要从几个方面去排查

硬件方面:

1 stm32的供电电压是否稳定,是否在正常工作电压范围内。电源文波大小一定要小,一般Ldo供电在33v在几个ma ,在stm32的vdda 和vssa引脚一定要接磁珠,各个电源硬件要接滤波电容

2 晶振以及旁路电容,一定要尽可能的靠近单片机,整个电路中是否有裸露的接口如usb io 口 这类的接口,因为冬天人体或者其他物体静电很大,当瞬间大静电通过接触,传导给单片机时,很容易引起单片机复位或者死机,所以有这样的接口需要做防静电电路,或者专用防静电芯片在保护单片机不死机。

3单片机复位电路,一定在设计的时候需要加旁路电容,同时需要保证复位电路电源稳定,这个与第一点原因说明一样。

4无线射频信号,当电路中有无线类如蓝牙wifi gsm等无线射频信号时,也很容易因为无线辐射干扰造成单片机死机,这个就需要找专业测试天线的公司或者设备或者人员去测试辐射状态。无线射频的电线一定要匹配好,否则很容易会有无法预测的不良状态出现。

首先,你在

void HardFault_Handler(void)

{

/ Go to infinite loop when Hard Fault exception occurs /

while (1)

{

}

}

里面设置一个断点,看程序运行的时候会不会进去,进去则说明你的程序逻辑上有问题,有可能是数组越界之类的错误;

其次,如果没有进去,你需要量一下boot0和boot1的电平,看是不是正常的flash内启动模式。

我之前也遇见过类似的问题,发现时开发板上boot前的一个三极管击穿了所以导致启动模式不对,希望对你有所帮助!

以上就是关于stm32在自己建的工程不能跑在例程的工程内能跑怎么回事全部的内容,包括:stm32在自己建的工程不能跑在例程的工程内能跑怎么回事、stm32程序在插上串口线可以进行调试,程序正常运行(程序有指示灯),拔掉串口线程序就不运行了,求指点!、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9725062.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存