现在用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忽略了呢,下次记得要选一下调试选项哦