如何禁用stm32f405 jtag接口

Sid*_*Sid 3 stm32

我有一块使用 STM32F405RG 的板,我的客户设计了硬件,并且必须使用几个 JTAG 引脚(PA15 和 PB4)作为 GPIO。我使用 SWD 进行刷新和调试,因此我想禁用 JTAG 接口,并且如 ST 文档中所述,“释放”PA15 和 PB4 以用作 GPIO 输出。

我的大多数搜索都会返回如何禁用 JTAG 接口,参考 STM32F1xx,而 F4 在这方面有很大不同。

由于 PA15 和 PB4 的 AFR 设置为零会选择 JTAG 引脚功能,如何将它们释放为 GPIO 输出?

Tag*_*gli 6

确实F1的JTAG端口设置与F4系列不同。

在F1系列中,您需要从AF重映射和调试I/O配置寄存器中禁用它们。例如,以下代码禁用 JTAG 引脚,但保持 SWD 启用:

RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; // Enable A.F. clock
AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE; // JTAG is disabled, SWD is enabled
Run Code Online (Sandbox Code Playgroud)

在F4系列中更容易。确实,AF 0 选择 JTAG 引脚,但您所要做的就是不要在 MODER 寄存器中选择 AF。上电时,PA13、PA14、PA15、PB3 和 PB4 通过相应的 MODER 位设置为交替功能模式。只需使用 MODER 寄存器为这些引脚选择另一种模式(输入、输出或模拟)。