STM32F4 关闭jtag,使能swd代码
时间: 2023-11-12 16:44:43 浏览: 163
要关闭JTAG并启用SWD,可以通过修改相应的寄存器来实现。以下是一种常见的方法:
```c
// 关闭 JTAG,启用 SWD
void enableSWD()
{
// 解锁对 RCC 寄存器的访问
RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
SYSCFG->MEMRMP |= SYSCFG_MEMRMP_MEM_MODE_1;
// 修改 GPIOB 和 GPIOC 的模式
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN | RCC_AHB1ENR_GPIOCEN;
GPIOB->MODER |= GPIO_MODER_MODER4_1;
GPIOC->MODER |= GPIO_MODER_MODER13_1 | GPIO_MODER_MODER14_1;
// 设置 AF 端口复用
GPIOB->AFR[0] |= (0x0B << 16); // PB4 -> AF11
GPIOC->AFR[1] |= (0x02 << 20); // PC13 -> AF2
GPIOC->AFR[1] |= (0x02 << 24); // PC14 -> AF2
}
```
这段代码将关闭JTAG并启用SWD。它将PB4配置为AF11(用于SWDIO),PC13和PC14配置为AF2(用于SWCLK和NRST)。请根据您的具体硬件配置进行适当的更改。
在您的应用程序的适当位置调用`enableSWD`函数即可。
相关问题
STM32F4禁用JTAG保留SWD
为了禁用STM32F4芯片的JTAG并保留SWD,你需要进行以下步骤:
1. 编辑 System Workbench for STM32 的 debug configurations。
2. 在 Debug Configurations 窗口中选中 GDB OpenOCD Debugging,并在右侧的选项卡中选择你的 STM32F4 设备。
3. 在 Setup 选项卡中,将 interface 选项设置为 SWD,并将 hla_swd 选项设置为 true。
4. 然后,在 Config options 字段中输入以下命令:
transport select jtag
reset_config srst_only srst_nogate
5. 最后点击 Apply 按钮保存更改。
相关问题:
1. 什么是 JTAG 和 SWD?
2. STM32F4 支持哪些调试接口?
3. 如何在 Keil MDK 中禁用 JTAG 保留 SWD?
阅读全文