解决STM32H743利用CUBEMX生成工程,连接下载器“CAN not access”问题

一、问题现象

无论生成MDK工程,还是Cubeide工程,连接ST-LINK调试,都会出现类似”Can not access memory“、程序运行到时钟配置处跑飞问题。断点执行到图1,继续允许就会出现图2的情况。

图1


图2


二、排查过程

确认过ST-LINK、工程DEBUG配置、板子晶振本身均无问题后,原因只剩下代码本身,起初有印象:在程序中配置过PLL分频,下次重新配置PLL分频之前,需要将时钟复位,于是在图3加入时钟复位代码,果然解决了调试器"Can not access"的现象,但高兴的太早,之后发现程序运行到了图4的Error_Handler(),说明这方法无效,而后面在用之前能跑的工程仿真成功后,可以确定是时钟配置的问题。

图3


三、最终定位问题

在与之前能跑的工程中,时钟配置逐行对比后,发现了端倪,CubeMX直接生成的工程中,缺少图4这行函数,加入后调试可以正常运行。

 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);/*新加入,不然程序会跑飞*/

图4


四、总结

问题原因在于自己刚刚接触H7系列芯片,CubeMX与HAL库也不太熟悉,所以本篇文章只是记录分享解决过程,对问题原因和为什么问题能解决,依然一头雾水

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值