STM32F1系列的DEBUG调试功能需要配置吗?

置顶/星标公众,不错过每一条消息

STM32F1系列的DEBUG调试功能需要配置吗?_第1张图片

   使用STM32CubeMX,配置STM32F1时关于DEBUG的问题,后台问的较多,就写一下相关内容。

1写在前面

STM32CubeMX的好处相信大部分朋友都知道,那就是帮你快速生成初始化代码工程

虽然方便了开发,但也给一些初学者,或者不怎么懂底层的朋友带来了不少困扰。


特别是使用该工具生成代码,出现问题的时候,如果不懂一些底层的知识,可能你会很头疼。


本文关于DEBUG配置的问题,针对初学者,我也把前因后果简单说一下。


2起因

STM32CubeMX配置STM32F1系列MCU时,第一次能下载成功,但第二次,会出现如下错误:

STM32F1系列的DEBUG调试功能需要配置吗?_第2张图片

这是什么错误?

没有连接到目标,也就是你的下载器(ST-LInk)是正常的,只是没有识别到你MCU。


这里推荐阅读专栏文章:ST-Link资料

3分析原因

可能很多初学者看到这个错误,第一反应是不是下载区器坏了,或者接线不良等问题。


其实不然,直接原因是STM32CubeMX这个工具初始化的代码,失能了DEBUG功能,也就是与ST-Link连接的SWCLK、SWDIO引脚不能作为DEBUG功能了。

STM32CubeMX默认配置:

STM32F1系列的DEBUG调试功能需要配置吗?_第3张图片

调用代码HAL_AFIO_REMAP_SWJ_DISABLE

STM32F1系列的DEBUG调试功能需要配置吗?_第4张图片

进一步分享,直到深入底层:

STM32F1系列的DEBUG调试功能需要配置吗?_第5张图片

看到这里,相信大家都明白其中原因了。

但是,新的问题:为什么配置STM32其它系列(如STM32F4)不会出现在这个问题呢?

其实也是需要通过分析底层,答案就是STM32F1系列关于AFIO的控制器和其它系列有一定差异。

其它系列是通过一个系统配置控制器 (SYSCFG)来实现一些特殊功能,没有关于DBUGESWJ-CFG几个(上图)。

4出现不能下载,怎么解决?

如果出现文中说的,第一次下载之后,连接失败,解决的办法很多,这里列几点常见方法。

1.STM32CubeMX配置成对应模式

比如你下载器的S-Link,配置成SWD模式:

STM32F1系列的DEBUG调试功能需要配置吗?_第6张图片

2.复位之后立刻连接

  • 使用J-link带复位引脚模式

  • 按着复位键->连接 -> 释放复位键

3.使用串口下载

有两种方式:

  • 启动内嵌Boot,使用串口下载,请参看文章《STM32自举程序,你了解多少?

  • IAP功能,有一段Bootloader程序,通过串口更新应用程序。

5拓展

STM32部分型号MCU不带JATG功能,比如STM32F0、STM32G0等。

STM32F1系列的DEBUG调试功能需要配置吗?_第7张图片

推荐阅读:

1.LPTIM低功耗定时器有哪些独特功能

2.【专栏】Keil系列教程

6最后

我的知乎:strongerHuang

我的网站:www.strongerhuang.com

若觉得文章对你有帮助,随手点“在看、转发分享,也是我继续更新的动力。

扫描下面二维码、关注公众号,在底部菜单中查看更多精彩内容!

640?wx_fmt=jpeg

长按识别图中二维码关注

你可能感兴趣的:(STM32F1系列的DEBUG调试功能需要配置吗?)