|
STM32F1系列的DEBUG调试功能需要配置吗? 1 H- K2 b- L6 l$ f使用STM32CubeMX,配置STM32F1时关于DEBUG的问题,后台问的较多,就写一下相关内容。 $ ]! @( R- i7 J3 a- r/ K ; H; ~% s8 I: x% D 1写在前面# G4 B" q) f% o, E0 Y4 R# H STM32CubeMX的好处相信大部分朋友都知道,那就是帮你快速生成初始化代码工程。 % E8 [6 |' q, W) D9 N G" A3 f9 e 虽然方便了开发,但也给一些初学者,或者不怎么懂底层的朋友带来了不少困扰。! Y0 C' U" k( e1 ]0 A+ _ * `$ A ]7 q& l2 K7 E; I2 } ) m2 z3 B+ U% h5 _ 特别是使用该工具生成代码,出现问题的时候,如果你不懂一些底层的知识,可能你会很头疼。 本文关于DEBUG配置的问题,针对初学者,我也把前因后果简单说一下。 * ]* a- [4 f* {; W" S 2起因6 \) X/ B; J3 h1 M" v STM32CubeMX配置STM32F1系列MCU时,第一次能下载成功,但第二次,会出现如下错误:
这是什么错误?! U! w, T' P7 ~; t5 D7 } : C3 O x) y8 \ 没有连接到目标,也就是你的下载器(ST-LInk)是正常的,只是没有识别到你MCU。 这里推荐阅读专栏文章:ST-Link资料 5 D8 \( @! k8 h* b: s6 n; v9 t * |* x$ L, {/ X* I8 L 3分析原因 可能很多初学者看到这个错误,第一反应是不是下载区器坏了,或者接线不良等问题。" E0 ^8 t% I5 O, ?& }1 J d $ I" \5 ?$ U: l1 ]- _, Z4 F! D- t( z 9 q* n6 x5 n. X 其实不然,直接原因是STM32CubeMX这个工具初始化的代码,失能了DEBUG功能,也就是与ST-Link连接的SWCLK、SWDIO引脚不能作为DEBUG功能了。 3 m* a/ {, K* i7 U& W8 m STM32CubeMX默认配置:7 S8 h% C8 E8 g$ o# k, E6 O
调用代码HAL_AFIO_REMAP_SWJ_DISABLE:
进一步分享,直到深入底层:
看到这里,相信大家都明白其中原因了。$ z: w" {& S5 K% O , f: q7 X$ u& L: ~( I# j' T 0 \8 B- S" m B3 T/ `& D- ] 但是,新的问题:为什么配置STM32其它系列(如STM32F4)不会出现在这个问题呢? 其实也是需要通过分析底层,答案就是STM32F1系列关于AFIO的控制器和其它系列有一定差异。! O& Y# d# p5 g) k9 D 6 i" i Z# Q# b2 V3 J/ } t4 L0 Y' M: y: s$ _3 v 其它系列是通过一个系统配置控制器 (SYSCFG)来实现一些特殊功能,没有关于DBUGE的SWJ-CFG几个位(上图)。 4出现不能下载,怎么解决? 如果出现文中说的,第一次下载之后,连接失败,解决的办法很多,这里列几点常见方法。 ) `4 }, s$ {1 D3 V' O 1.STM32CubeMX配置成对应模式% }5 J" _& L9 A0 _, u & G1 U6 u. B# `& A& T 比如你下载器的S-Link,配置成SWD模式:6 N* ?* f6 S9 h3 w! C5 U3 x
2.复位之后立刻连接 4 ], e ]: }$ `$ z% C 使用J-link带复位引脚模式 : U1 h. D& ^8 g9 m- x 按着复位键->连接 -> 释放复位键 ' X @1 U- }; m! ]6 r$ P5 o" \ . x( E/ O7 \3 W) \7 g, x5 v 3.使用串口下载9 _8 T( O& o1 S' Z% N4 h4 q 有两种方式: 6 x1 i: t0 ~. k, d a7 f. G# M 启动内嵌Boot,使用串口下载,请参看文章《STM32自举程序,你了解多少?》& `7 z- o' D( d6 v+ U0 V# g 3 N+ g6 v, {! Q5 U$ c5 N IAP功能,有一段Bootloader程序,通过串口更新应用程序。8 o) [1 f, ]8 l3 o5 e$ p3 W& s 2 Q$ l' ~- `: z: o ! g* h% ]/ ~4 |4 ?+ B 5拓展 STM32部分型号MCU不带JATG功能,比如STM32F0、STM32G0等。8 m# r L' |: i/ G% f b! L: {6 K
% s; w4 l! k6 ?7 S. j ! C' k Q/ H, |) b1 l. u 9 @/ P& P/ ]6 b9 a; h 3 l+ f4 G+ \5 f3 Z! z' H. b 2 V- x T8 Z8 i# ]7 i* { |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版