STM32F103下载的SWJ接口禁用问题

前言

  在STM32中有一些引脚的主功能不是实现GPIO的功能,而是用作调试接口。就比如我们常用的ST-LINK下载器,就是通过SWD接口给STM32下载程序的。SWJ接口包括SWD和JTAG两种。

环境

  • STM32F103C6T6核心板
  • STM32CubeMX生成的HAL库文件

基础

SWJ接口(F103为例)

  • 串行线调试接口(SWD)

    • SWDIO:SWD端口的数据线(PA13)。
    • SWCLK:SWD端口的时钟线(PA14)。
    • SWO:串行线输出(PA3)。
  • JTAG接口

    • TMS引脚(PA13)
    • TCK引脚(PA14)
    • TDO引脚(PA15)

串口下载:

  • BOOT模式

    boot0 --> 1 boot1 --> 0

  • 串口接线

    TTL_RX --> PA9(TX) TTL_TX --> PA10(RX)

代码

  调用下列代码后,在初始化引脚就能把上述的SWJ接口的引脚,当GPIO使用。但是也会失去用ST-LINK调试下载的功能,得要生成hex文件,和切换boot的模式后,用串口一下载程序。在HAL库中好像只能把JTAG-DP和SW-DP都给禁止调,而不能单独禁止一个。

// 禁用JTAG-DP和SW-DP
__HAL_AFIO_REMAP_SWJ_DISABLE(); 

// 将JTDI功能映射到PB4引脚
//__HAL_AFIO_REMAP_JTDI_ENABLE();

你可能感兴趣的:(杂谈理解,stm32,单片机,嵌入式硬件,mcu,笔记)