我有一个使用STM32F405RG的板,我的客户端设计了硬件,并且不得不使用两个JTAG引脚(PA15和PB4)作为GPIO。我使用SWD来闪烁和调试,所以我想禁用JTAG接口,并且,正如ST文档中所说的,“释放”PA15和PB4作为GPIO输出。
我的大部分搜索返回如何禁用JTAG接口,引用STM32F1xx和F4在这方面有很大不同。
由于使用PA15和PB4,AFR设置为零,选择JTAG函数,如何释放它们作为GPIO输出?
发布于 2019-12-28 19:36:40
确实,F1 JTAG端口设置与F4系列不同。
在F1系列中,您需要从AF重新映射和调试I/O配置寄存器中禁用它们。例如,以下代码禁用JTAG引脚,但使社署启用:
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; // Enable A.F. clock
AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE; // JTAG is disabled, SWD is enabled在F4系列里更容易。的确,AF 0选择JTAG引脚,但您所要做的不是在MODER寄存器中选择AF。在电源上,PA13、PA14、PA15、PB3和PB4通过各自对应的MODER位被设置为交替的函数模式.只需选择另一个模式(输入,输出或模拟)为这些引脚使用模寄存器。
发布于 2019-12-27 10:27:33
你必须像你说的那样"release" PA15 and PB4 to be used as GPIO outputs.
我不认为F1和F4在这件事上有什么不同。因此,您将它们配置为输出,并将它们设置为高或低。这将禁用它们由JTAG适配器驱动的能力。
https://stackoverflow.com/questions/59493359
复制相似问题