STM32 中JTAG 引脚作为普通IO口设置方法

stm32的程序下载引脚涉及PB3、PB4、PA13、PA14、PA15,其中PA13,PA14分别作为SWD调试的SWIO和SWCLK。PB3,PB4,PA13,PA14,PA15共同用于JTAG调试。

       

     看上面的数据手册,可以知道一般的IO口,其默认功能就是IO口。可是PB3、PB4、PA13、PA14、PA15这几个IO口的默认功能是JTAG功能,IO口功能反而是他们的重映射功能。因此要把他们作为普通IO口使用,要把他们的重映射功能打开。

只需要把PB3,PB4,PA15当成IO使用,设置:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

把PB3、PB4、PA13、PA14、PA15都当成IO使用,设置:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

注意一定要把AFIO时钟打开,不然GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);是没有意义的。

### 将STM32 JTAG引脚重新配置为普通IO 为了将STM32JTAG引脚重新配置为普通的GPIO引脚,需要执行特定的操作来禁用JTAG调试功能并重映射这些引脚的功能。具体实现方法如下: #### 禁用JTAG并启用SWD调试 在某些情况下,可能希望保留SWD(单线调试)而仅禁用JTAG以释放更多的I/O资源。这可以通过调用`GPIO_PinRemapConfig()`函数两次完成,第一次用于完全禁用JTAG,第二次是为了确保设置生效。 ```c GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); // 关闭JTAG,但仍可使用SWD进行调试[^1] ``` 这段代码会使得PB3和PB4不再作为JTAG信号线工作,而是被释放出来供其他用途使用。 #### 配置GPIO模式 一旦完成了上述步骤,就可以像对待任何其他的GPIO引脚那样去初始化它们了。通常来说,这意味着要指定该引脚的工作模式(输入/输出)、速度等级以及上下拉电阻状态等参数。 对于STM32F4系列微控制器而言,常见的GPIO操作模式有八种不同的组合方式,每一种都针对不同应用场景进行了优化[^2]。当把原本属于JTAG的管脚转换成常规的GPIO之后,可以根据实际需求选择合适的模式来进行进一步开发。 例如,在这里展示一段简单的C语言代码片段用来设定PB3为推挽输出模式,并将其初始电平设为低电平: ```c __HAL_RCC_GPIOB_CLK_ENABLE(); //使能GPIOB时钟 GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_3; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 推挽输出 GPIO_InitStruct.Pull = GPIO_NOPULL; // 不带内部上拉下拉 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; // 设置较低的速度即可满足大多数应用场合的要求 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); // 初始化状态下保持低电平 ``` 以上就是关于如何将STM32上的JTAG引脚重新定义为标准GPIO方法介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值