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

使用stm32cubemx,配置stm32f1时关于debug的问题,后台问的较多,就写一下相关内容。
1写在前面
stm32cubemx的好处相信大部分朋友都知道,那就是帮你快速生成初始化代码工程。
虽然方便了开发,但也给一些初学者,或者不怎么懂底层的朋友带来了不少困扰。
特别是使用该工具生成代码,出现问题的时候,如果你不懂一些底层的知识,可能你会很头疼。
本文关于debug配置的问题,针对初学者,我也把前因后果简单说一下。
2起因
stm32cubemx配置stm32f1系列mcu时,第一次能下载成功,但第二次,会出现如下错误:
这是什么错误?
没有连接到目标,也就是你的下载器(st-link)是正常的,只是没有识别到你mcu。
这里推荐阅读专栏文章:st-link资料
3分析原因
可能很多初学者看到这个错误,第一反应是不是下载区器坏了,或者接线不良等问题。
其实不然,直接原因是stm32cubemx这个工具初始化的代码,失能了debug功能,也就是与st-link连接的swclk、swdio引脚不能作为debug功能了。
stm32cubemx默认配置:
调用代码hal_afio_remap_swj_disable:
进一步分享,直到深入底层:
看到这里,相信大家都明白其中原因了。
但是,新的问题:为什么配置stm32其它系列(如stm32f4)不会出现在这个问题呢?
其实也是需要通过分析底层,答案就是stm32f1系列关于afio的控制器和其它系列有一定差异。
其它系列是通过一个系统配置控制器 (syscfg)来实现一些特殊功能,没有关于dbuge的swj-cfg几个位(上图)。
4出现不能下载,怎么解决?
如果出现文中说的,第一次下载之后,连接失败,解决的办法很多,这里列几点常见方法。
1.stm32cubemx配置成对应模式
比如你下载器的s-link,配置成swd模式:
2.复位之后立刻连接
使用j-link带复位引脚模式
按着复位键->连接 ->释放复位键
3.使用串口下载
有两种方式:
启动内嵌boot,使用串口下载,请参看文章《stm32自举程序,你了解多少?》
iap功能,有一段bootloader程序,通过串口更新应用程序。
5拓展
stm32部分型号mcu不带jatg功能,比如stm32f0、stm32g0等。

学会这4招,轻松搞定开关电源EMI
Teledyne Imaging推出的Z-Trak2是一个全新的3D轮廓传感器系列
深鉴科技上市了吗_深鉴科技相关股票代码
作为防静电对策的使用事例及效果
智慧门禁系统升级,离不开人脸识别门禁终端的加持
STM32F1系列DEBUG调试功能需要配置吗?
Proteus8.9 VSM Studio GCC编译器仿真STM32F407ZGT6系列011_lcd1602并口
智慧热力:热力管网在线监测,热力管网自动化,热网监控系统
基于FPGA的数字电位器设计
光电传感器在自动控制领域的应用,它的特点有哪些
FATFS文件系统详解:关于SD卡、SD nand、spi nor flash等众多存储设备
无人机作为交互式无人机蜂群战术效果展示
英特尔加快推进新一代PC、路由器和网关Wi-Fi 6的应用
TISS将SCiB可充电电池业务转移到东芝
STP网线在综合布线系统中重要吗
非易失性存储器在DDR3速度下具有非挥发性和高耐久性
防雷攻略 · PoE交换机雷电防护篇
YOLOv5网络结构解析
红米Note4,十核旗舰,就是快!
Anduril Industries设计研发虚拟边境墙,用于检测非法越境人员