记STM32CubeMx工程烧录失败排查与解决思路

    最近自己利用STM32CubeMx创建了一个工程,之后发现每次下载都需要先按reset键,点击下载,然后松开才能下载成功。

    由于是新的板子,所以一度怀疑是板子的BOOT0和BOOT1设置有问题,用电压表测了一下,BOOT0确实是低电平,理论上应该能烧录,而且该板子接手前据说也是可以烧录的,一时没有思路,就按上面的方法烧录。

   过了两天,实在觉得麻烦,突然发现可能配置了SWCLK和SWDIO引脚,但是全局搜索了一下,发现并没有。

   无奈,把main函数的内容注释掉,发现能够自动烧录了,所以推断肯定是软件配置导致。接着把第一行的HAL_Init();打开,发现烧录就出问题了。详细看了函数内容,发现其调用了HAL_MspInit();,而这个函数又调用__HAL_AFIO_REMAP_SWJ_DISABLE,其注释为DISABLE: JTAG-DP Disabled and SW-DP Disabled,所以猜测这里关闭了SW,将其注释掉,终于解决问题了。有时间再看下它控制的寄存器吧。

      最后,下面是我新开的个人公众号,上面会不定期记录我单片机和嵌入式相关的工作经验和整理,欢迎关注,比心!

                                                     

猜你喜欢

转载自blog.csdn.net/qq_34244393/article/details/107470014