0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 作者:黄工的嵌入式技术 2020-03-01 13:57 次阅读

使用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等。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17141

    浏览量

    351097
  • DEBUG
    +关注

    关注

    3

    文章

    93

    浏览量

    19914
  • stm32cubemx
    +关注

    关注

    5

    文章

    283

    浏览量

    14801
收藏 人收藏

    评论

    相关推荐

    STM32F103×8/STM32F103×B MCU手册

    需要确定系统时钟源,如使用HSE或HSI,然后配置PLL倍增因子以获得所需的系统时钟频率。这通常通过修改RCC(复位与时钟控制)寄存器来完成,并可以在STM32CubeMX或标准外设库/HAL库中轻松设置。2. Q: 为什么
    发表于 11-18 15:14 0次下载

    使用STM32F1输入捕获功能时,TIM6和TIM7无法实现输入捕获是哪里的问题?

    使用STM32F1输入捕获功能时,TIM6和TIM7无法实现输入捕获,是芯片问题吗?在配置STM32F1的TIM6和TIM7定时器时,发现无法进行输入捕获,是否因为芯片
    发表于 09-27 09:11

    开发攻略之STM32调试端口的映射

    最近有一个项目用到了STM32F103RB系列单片机,由于引脚数量较少,不得不使用到了单片机的PB3和PB4两个引脚。而这两个引脚刚好又是STM32系列的JTAG
    的头像 发表于 08-03 08:11 438次阅读
    开发攻略之<b class='flag-5'>STM32</b><b class='flag-5'>调试</b>端口的映射

    如何使用STM32F1控制ESP8266?

    如何使用STM32F1控制ESP8266?
    发表于 07-09 06:21

    自制一款兼容STM32F1/F4芯片的飞控板

    自己制作的一款兼容STM32F1/F4芯片的飞控板。
    发表于 07-04 14:07 0次下载

    STM32F1 IAP操作读保护选项字节设置,APP使用系统复位跳转后无法运行IAP的原因?

    最近调试一个程序,是基于STM32F1做的IAP,升级前后需要修改选项字节,FLASH_EraseOptionBytes函数内OB->RDP=RDP_Key语句实现读保护的解除,如果我
    发表于 05-13 08:09

    STM32F1内部ADC的DUAL MODE的使用问题求解

    我想利用STM32F1内部的ADC采集四路电压值,因为要求同时采集,所以我使用了ADC的DUAL MODE,可是由于始终未能读明白芯片手册!ADC的设置与DMA的设置基本上参考STM32F1提供
    发表于 05-09 06:51

    stm32f1做的usb键盘,连电脑无法识别怎么解决?

    stm32f1做的usb键盘,连电脑无法识别
    发表于 04-11 08:19

    STM32F1改用STM32F2或STM32F4芯片后,发现芯片根本不能正常工作怎么解决?

    曾有工程师反映,之前用STM32F1系列芯片好好的,后来因为产品需要,改用STM32F2或STM32F4芯片后,发现芯片根本不能正常工作,即
    发表于 04-08 06:45

    STM32f1怎么判断引起CAN发送中断的ID是哪个?

    STM32f1怎么判断引起CAN发送中断的ID是哪个
    发表于 04-03 07:46

    STM32F1的LL库,RTC怎么不能设置日期?

    STM32F1的LL库,RTC 怎么不能设置日期,只能设置时间。
    发表于 03-29 07:02

    STM32CubeMX创建STM32U5系列工程,DEBUG调试下为什么没有ST-LINK选项?

    通过STM32CubeMx创建生成一个STM32U5xxx 的MDK(keil_v5)工程,打开工程后,想通过ST-LINK进行调试,但在工程的Debug窗口并没有ST-LINK相关的
    发表于 03-27 06:40

    能用stm32h7为主做绝大部分的功能实现,用stm32f1为辅实现一个小功能吗?

    请问能用stm32h7为主做绝大部分的功能实现,用stm32f1为辅实现一个小功能吗?
    发表于 03-20 07:09

    请问如何快速移植stm32f1的程序到STM32C0中?

    如何快速移植stm32f1的程序到STM32C0中?
    发表于 03-08 06:54

    STM32H750 PB3、PB4、PB5配置成SPI功能需要额外处理JTAG功能吗?

    STM32H750 PB3、PB4、PB5配置成SPI功能需要额外关闭JTAG功能吗。调试选择了
    发表于 03-07 07:03