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

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

3天内不再提示

STM32的调试方式、更新程序、仿真以及补救措施

贸泽电子设计圈 2018-01-17 14:55 次阅读

最近有一个项目用到了STM32F103RB系列单片机,由于引脚数量较少,不得不使用到了单片机的PB3和PB4两个引脚。而这两个引脚刚好又是STM32系列的JTAG调试引脚,如果要用于普通IO的功能需要先进行一定的设置。

1. STM32的调试方式选择

STM32支持JTAG和SWD两种调试方式,且默认状态下这两种调试功能都是开启的。

STM32的调试方式、更新程序、仿真以及补救措施

由此我们可以知道:

如果要使用JTAG调试功能,那么PB3,PB4,PA13,PA14,PA15都不能使用;

而如果我们关闭JTAG功能,但是开启SWD调试功能,那么PB3,PB4,PA15都可以当作普通IO来使用了;

ST官方3.5的库有提供关闭调试功能的两个接口

1.1 关闭所有的JTAG和SWD调试功能

慎用,一旦执行该命令,程序运行后将不能通过JTAG或SWD方法进行烧写和下载,补救措施见文末。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

执行上面语句后,PB3,PB4,PA13,PA14,PA15都可以当作普通iO来使用,此时不能通过J-Link进行调试了;

1.2 仅关闭JTAG调试功能

该方法的好处是,解放了JTAG功能占用的引脚,但是SWD调试功能依旧可以使用。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

执行上面语句后,PB3,PB4,PA15都可以当作普通iO来使用,且可以通过SWD进行调试。

2. 关闭JTAG和SWD调试方式后如何更新程序以及仿真

2.1 关闭JTAG如何更新程序

关闭JTAG调试功能以后,STM32不再支持在线仿真,且更新程序也需要通过一定操作才可以完成。此方法在开发阶段慎用!

建议程序启动时延时3-5秒后再关闭JTAG调试模式,如此,单片机断电复位后立即点击烧写按钮也是可以进行程序烧录的。

2.2 关闭JTAG及SWD调试功能后的补救措施

补救措施一:

设置启动模式为ISP模式(BOOT0=1、BOOT1=0)或设置启动模式为RAM运行模式(BOOT0=1、BOOT1=1)。

将开发板断电后重新上电,此时就因不是在用户程序模式,因此就不会执行禁用JTAG的语句,JTAG功能也就可以正常使用。

补救措施二:

设置启动模式为ISP模式(BOOT0=1、BOOT1=0),用ISP程序将STM32的FLASH擦除,之后就可恢复JTAG功能。

补救措施三:

如果你的仿真器支持SWD仿真模式,如IAR下用JLINK、MDK下用ULINK2。直接将仿真器的模式设为SWD模,就可以不受这个禁止JTAG功能的影响了。

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

    关注

    2265

    文章

    10860

    浏览量

    354576
  • SWD
    SWD
    +关注

    关注

    1

    文章

    56

    浏览量

    11799
  • atag
    +关注

    关注

    0

    文章

    1

    浏览量

    2548

原文标题:将STM32的调试口设置为普通IO口,你掌握了吗?

文章出处:【微信号:Mouser-Community,微信公众号:贸泽电子设计圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32调试方式更新程序仿真以及补救措施

    STM32调试方式更新程序仿真以及
    发表于 07-04 07:27

    STM32编译开发环境及仿真调试篇-----野马学习笔记

    STM32编译开发环境及仿真调试篇-----野马学习笔记
    发表于 10-27 09:13 26次下载
    <b class='flag-5'>STM32</b>编译开发环境及<b class='flag-5'>仿真</b><b class='flag-5'>调试</b>篇-----野马学习笔记

    基于IAP的STM32程序更新技术

    提供和开放了用户更新程序的接口与方式,以提高整个系统的可靠性和可维护性。ST公司基于CortexM3内核的STM32系列产品得到了广泛应用,在许多基于
    发表于 11-30 04:53 578次阅读
     基于IAP的<b class='flag-5'>STM32</b><b class='flag-5'>程序</b><b class='flag-5'>更新</b>技术

    边缘计算的风险及其补救措施

    如今,每个人都知道计算和网络会带来安全风险,而新的风险伴随着新的计算技术而出现。边缘计算也是如此。因为对于大多数组织来说,它代表了IT模式的相当大的转变,边缘计算设施面临的安全风险可能十分严重。因此,了解这些风险及其补救措施对于确保业务运营的顺利进行至关重要。
    的头像 发表于 10-19 14:55 2612次阅读

    微软Microsoft Defender 将默认全自动执行补救措施

    微软:Microsoft Defender 将默认全自动执行补救措施,微软,defender
    的头像 发表于 02-20 16:05 1323次阅读
    微软Microsoft Defender 将默认全自动执行<b class='flag-5'>补救措施</b>

    STM32简单程序编译及Proteus程序设计与仿真

    该文章主要介绍在MDK5上进行STM32设计跑马灯程序并进行编译;以及基于51单片机进行交通信号灯的程序设计之后对其进行Proteus软件仿真
    发表于 11-17 18:06 75次下载
    <b class='flag-5'>STM32</b>简单<b class='flag-5'>程序</b>编译及Proteus<b class='flag-5'>程序</b>设计与<b class='flag-5'>仿真</b>

    stm32简单程序编译及完成51程序设计与仿真

    stm32简单程序编译及完成51程序设计与仿真
    发表于 11-21 16:36 3次下载
    <b class='flag-5'>stm32</b>简单<b class='flag-5'>程序</b>编译及完成51<b class='flag-5'>程序</b>设计与<b class='flag-5'>仿真</b>

    基于STM32的蓝牙HC05调试程序 通过手机控制STM32单片机程序

    基于STM32的蓝牙HC05调试程序 通过手机控制STM32单片机程序
    发表于 11-24 12:36 121次下载
    基于<b class='flag-5'>STM32</b>的蓝牙HC05<b class='flag-5'>调试程序</b> 通过手机控制<b class='flag-5'>STM32</b>单片机<b class='flag-5'>程序</b>

    MDK开发环境下STM32的简单程序的编译以及一个89C51程序设计和仿真

    MDK开发环境下STM32的简单程序的编译以及一个89C51程序设计和仿真
    发表于 11-25 14:06 13次下载
    MDK开发环境下<b class='flag-5'>STM32</b>的简单<b class='flag-5'>程序</b>的编译<b class='flag-5'>以及</b>一个89C51<b class='flag-5'>程序</b>设计和<b class='flag-5'>仿真</b>

    熟悉MDK,stm32的简单程序编译,以及用proteus进行51程序设计和仿真

    MDK环境下stm32的简单程序编译以及用proteus进行51程序设计和仿真ARM开发环境入门MDK环境下
    发表于 12-04 20:51 15次下载
    熟悉MDK,<b class='flag-5'>stm32</b>的简单<b class='flag-5'>程序</b>编译,<b class='flag-5'>以及</b>用proteus进行51<b class='flag-5'>程序</b>设计和<b class='flag-5'>仿真</b>

    stm32cubeMX+vscode开发编译调试stm32程序

    stm32cubeMX+vscode开发编译调试stm32程序安装vscode安装make工具安装交叉编译工具链安装openocd安装clang llvm生成并编译代码配置vscode
    发表于 12-24 19:31 6次下载
    <b class='flag-5'>stm32</b>cubeMX+vscode开发编译<b class='flag-5'>调试</b><b class='flag-5'>stm32</b><b class='flag-5'>程序</b>

    mdk5软件和stm32包的安装以及stm32程序“LED闪烁”调试,用Proteus仿真一个51程序设计和仿真

    mdk5软件和stm32包的安装以及stm32程序“LED闪烁”调试,用Proteus仿真一个5
    发表于 01-13 12:41 10次下载
    mdk5软件和<b class='flag-5'>stm32</b>包的安装<b class='flag-5'>以及</b><b class='flag-5'>stm32</b><b class='flag-5'>程序</b>“LED闪烁”<b class='flag-5'>调试</b>,用Proteus<b class='flag-5'>仿真</b>一个51<b class='flag-5'>程序</b>设计和<b class='flag-5'>仿真</b>

    电缆故障现场修补措施

    电缆很多时候一遇到故障就特别麻烦,在此给大家介绍如果发生在电缆现场如何补救措施
    发表于 03-29 11:55 1509次阅读

    锤式破碎机轴径磨损的的补救方法

    锤式破碎机轴径磨损的紧急补救措施
    发表于 07-13 16:15 0次下载

    基于矩阵变换器驱动的PMSM容错补救措施

    电子发烧友网站提供《基于矩阵变换器驱动的PMSM容错补救措施.pdf》资料免费下载
    发表于 10-09 15:35 0次下载
    基于矩阵变换器驱动的PMSM容错<b class='flag-5'>补救措施</b>