STM32F103单片机在不需要使用 JTAG 调试接口的情况下,释放引脚给其他功能使用。
最近调试STM32F103的时候,由于引脚比较紧张就用了PB3(SYS_JTDO-TRACESWO)引脚,带电下载完程序后,功能都是正常运行,但是断电再上电,PB3引脚就不受控制了,后来查了一下发现PB3不是普通的IO,需要关闭复用功能,关闭方式如下。
SWJ (Serial Wire JTAG) 是一个 STM32 微控制器的调试接口,通常可以使用两种模式:SWD (Serial Wire Debug) 和 JTAG。
JTAG 是一种常用的调试接口,它需要占用一些特定的引脚,如 TDI、TDO、TMS、TCK。某些项目可能只需要使用 SWD 接口进行调试,而不需要 JTAG。
__HAL_AFIO_REMAP_SWJ_NOJTAG(); 是一个宏,它的作用是通过修改 AFIO (Alternate Function I/O) 控制寄存器来禁用 JTAG 接口并将这些引脚重新映射,释放出来供其他功能使用。这使得开发者可以将 JTAG 引脚重新用于普通的 GPIO 引脚,或者用于其他外设功能。