打印
[应用相关]

STM32引脚重映射

[复制链接]
500|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-8-21 18:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
操作方法
需要用到AFIO和GPIO_PinRemapConfig函数

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);        //开启AFIO时钟


void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);        //引脚重映射配置,uint32_t GPIO_Remap引脚重映射方式



如果想要PA15、PB3、PB4变成普通GPIO口
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);            //开启AFIO的时钟,重映射必须先开启AFIO的时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);        //将JTAG引脚失能,作为普通GPIO引脚使用

如果普通GPIO口 想重映射 定时器 或者 其他外设的复用引脚
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);            //开启AFIO的时钟,重映射必须先开启AFIO的时钟
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);            //将TIM2的引脚部分重映射,具体的映射方案需查看参考手册

//重映射方式对应重映射关系可以参考手册,复用功能I/O和测试配置(AFIO)中可以查看

如果调试端口 想重映射 定时器 或者 其他外设的复用引脚
由于PA15上电后默认恢复为调试端口JTDI,要想让其成为普通GPIO或复用定时器的通道,则要关闭调试端口的复用,也用这个函数

void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);
该函数关闭调试端口的参数选择
GPIO_Remap_SWJ_NoJTRST        //解除JTRST引脚的复用,就是PB4,使用该参数,PB4变成正常GPIO口

GPIO_Remap_SWJ_JTAGDisable        //解除JTAG调试端口的复用,PA15、PB3、PB4变回正常GPIO

GPIO_Remap_SWJ_Disable        //把SWD和JTAG的调试端口全部解除,PA13、PA14、PA15、PB3、PB4全部变为普通GPIO,没有调试功能,不能随便调用。一旦调用该参数并下载程序后,调试端口就没了,再使用STLINK就下载不进去程序,只能再使用串口下载一个新的、没有解除调试端口的程序,才能把调试端口弄回来

代码示例
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);            //开启AFIO的时钟,重映射必须先开启AFIO的时钟
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);            //将TIM2的引脚部分重映射,具体的映射方案需查看参考手册
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);        //将JTAG引脚失能,作为普通GPIO引脚使用

注意
引脚重映射后,GPIO口的初始化要更改为重映射后的引脚。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/2301_77574331/article/details/141198819

使用特权

评论回复
沙发
梵蒂冈是神uy| | 2024-8-23 14:40 | 只看该作者
使用 GPIO_PinRemapConfig 函数配置引脚重映射。该函数的两个参数分别是 GPIO_Remap 和 NewState。GPIO_Remap 指定了重映射的方式,而 NewState 则用于启用或禁用重映射。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1931

主题

15611

帖子

11

粉丝