STM32L431断开jlink后程序无法运行,需要短复位电容才可以

博主在使用STM32CubeMX配置STM32L432时钟源为MSI,设置系统时钟为80MHz后,发现程序在加入业务代码后不稳定,需要JLink连接才能运行,或者通过复位电容短接。更换为HSI时钟源后问题解决。初步判断问题可能与MSI配置有关。STM32CubeMX生成的代码默认优化等级为3,对于新手来说使用体验不佳。
摘要由CSDN通过智能技术生成

使用STM32CubeMX配置时钟源为MSI,配置系统时钟为80MHz,生成的代码只运行点灯程序和外设初始化时是正常的。加入业务代码后,在连接jlink的情况下可以运行,不然的话就需要短一下复位电容才行。

开始怀疑是复位电容的问题,更换之后还是一样,而且在调试状态下也有可能进入HardFault_Handler,在Call Stark+Locals里面进入HardFault_Handler之前的内容为0x00000000。

在更换时钟源为HSI后,程序正常运行,确定了问题出在系统时钟配置上(还没研究使用MSI为什么会这样)。如果使用MSI的话,可以参考STM32L432的内部MSI晶振使用

另外,使用STM32CubeMX生成的代码默认优化等级3,第一次使用STM32CubeMX,用起来不太顺。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值