现在用stm32基本是都是使用cubeMX来建立工程了吧,方便快捷。但是cubeMX也有很多坑的,下面来谈谈用cubeMX建立工程粗心导致ST-link无法下载固件的第一个坑。
第一次下载还好好哒
第二次下载,这是什么鬼

怎么办?坏了吗,要这么处理?
别急,教你怎么处理:
-
把复位脚拉低,然后点击Download图标或是F8进行下载,此时应立刻释放复位脚。(不能拉低不放,否则出现“Core is held in reset”错误),这下可以顺利下载了吧,别急,不想每次都这样的话,继续按下面的步骤来:
-
进入main()函数,找到HAL_Init()函数,并跳转到其实现处:

-
继续进入HAL_MspInit()函数,找到原因了吗,呵呵继续

-
点击__HAL_AFIO_REMAP_SWJ_DISABLE();进入

-
把JTAG和SW调试都关闭了,能下载才会见鬼呢,按需要把__HAL_AFIO_REMAP_SWJ_DISABLE();进行替换,我这里只用SW调试方式,所以替换为__HAL_AFIO_REMAP_SWJ_NOJTAG() ;

-
替换函数,然后编译。注第一次还是要拉低复位脚才能下载,以后直接按download或是F8就可以了。
那原因是什么呢,我们转到cubeMX来看看,是不是把sys忽略了呢,下次记得要选一下调试选项哦


本文解决使用STM32CubeMX建立工程时,因配置不当导致ST-link无法下载固件的问题。通过调整HAL库函数配置和正确设置调试选项,确保固件顺利下载。
&spm=1001.2101.3001.5002&articleId=83446736&d=1&t=3&u=975d7d12af054f9a979251782498c0f6)
1424

被折叠的 条评论
为什么被折叠?



