用STM32特殊引脚作为普通IO时需要的操作

引出来的引脚再特殊也是GPIO

在PCB设计时,并没有去看手册,而是直接用嘉立创里的封装直接设计电路,导致用上了3个特别阴的引脚 PA15 PA12 PA11,在编程控制PA15的时候,发现无法控制,查文章之后发现这个引脚默认是用于JTDI调试的引脚,需要先失能默认使用的JTDI功能,再重定义到PA15的GPIO功能

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);// 使能复用时钟和引脚GPIO时钟  
DBGMCU->CR = DBGMCU->CR & ~((
### 将STM32 JTAG引脚重新配置为普通IO口 为了将STM32的JTAG引脚重新配置为普通的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、付费专栏及课程。

余额充值