良许Linux教程网 干货合集 STM32F1系列的DEBUG调试功能需要配置吗?

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

使用STM32CubeMX来配置STM32F1时关于DEBUG的问题,是一个经常被问到的话题,所以我想在这里简单介绍一下相关内容。

首先,在大多数朋友的心中,他们都知道STM32CubeMX的好处,那就是它能够帮助你快速生成初始化代码工程。这无疑为开发带来了很大的便利。然而,对于一些初学者或者对底层知识不太了解的朋友来说,这也带来了一些困惑。

特别是当使用STM32CubeMX生成的代码出现问题时,如果你对底层知识不熟悉,可能会感到很头疼。

因此,在本文中,我将简单介绍关于DEBUG配置的问题,并且针对初学者解释一下问题产生的原因和可能的解决方案。

2起因

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

image-20231227195148508
image-20231227195148508

这是什么错误?

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

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

3分析原因

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

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

STM32CubeMX默认配置:

image-20231227195151910
image-20231227195151910

调用代码****HAL_AFIO_REMAP_SWJ_DISABLE

image-20231227195155150
image-20231227195155150

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

image-20231227195158141
image-20231227195158141

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

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

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

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

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

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

1.STM32CubeMX配置成对应模式

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

image-20231227195201921
image-20231227195201921

2.复位之后立刻连接

  • 使用J-link带复位引脚模式
  • 按着复位键->连接 -> 释放复位键

3.使用串口下载

有两种方式:

5拓展

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

image-20231227195204865
image-20231227195204865

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部