打印
[应用相关]

对于STM32 GPIO复用和重映射理解

[复制链接]
17158|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhou0214|  楼主 | 2015-7-24 15:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于GPIO复用和重映射功能我的理解。
       复用功能:对于很多的IO口都有复用功能,复用功能可以在DataSheet里面找到,要想用某个复用功能,首先把IO口配置成复用功能模式,复用输出输入模式(根据功能的不同配置成不同的模式,参考手册P110页里面有详细的介绍)。比如你想用PA8复用功能TIM1-CH1输出比较,先把PA8设置为推挽复用输出(GPIO_MODE_AF_PP)。再配置TIM1-CH1即可。

      重映射功能:每个IO口的重映射功能可以通过查看DataSheet找到。TIM3-CH1没有重映射的时候对应引脚PA6,当我选择部分重映射的时候对应引脚PB4,选择完全重映射的时候对应引脚未PC6,此时要主要在选择部分重映射和完全重映射的时候其他的引脚也有发生变化。


     另有个不解的地方就是库函数GPIO_PinRemapConfig,对照寄存器没有弄明白。

      欢迎大家聊聊这两个功能的其他理解。


       一起学习一起进步!
沙发
zhou0214|  楼主 | 2015-7-24 15:24 | 只看该作者
库函数GPIO_PinRemapConfig就是用来重映射使用的啊。
就拿你说的TIM3-CH1如果没有映射的时候对应PA6。
TIM3-CH1如果部分重映射的对应PB4,使用下面的库函数设置:
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //Timer3部分重映射TIM3_CH1->PB4   

TIM3-CH1如果完全重映射的对应PC6,使用下面的库函数设置:
GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE); //Timer3完全重映射 TIM3_CH1->PC6   

这种用来一般在F1系列使用,在F4重映射的使用下面的函数:
void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)
{
  uint32_t temp = 0x00;
  uint32_t temp_2 = 0x00;
  
  /* Check the parameters */
  assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
  assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
  assert_param(IS_GPIO_AF(GPIO_AF));
  
  temp = ((uint32_t)(GPIO_AF) << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
  GPIOx->AFR[GPIO_PinSource >> 0x03] &= ~((uint32_t)0xF << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
  temp_2 = GPIOx->AFR[GPIO_PinSource >> 0x03] | temp;
  GPIOx->AFR[GPIO_PinSource >> 0x03] = temp_2;
}

使用特权

评论回复
板凳
wang253098656| | 2015-7-24 15:36 | 只看该作者
楼主知道如何改变GPIO输入输出状态么,例如GPIOE的pin4怎么改变这个脚的状态呢,或者输入状态怎么设定

使用特权

评论回复
地板
搞IT的| | 2015-7-24 15:41 | 只看该作者
大神  膜拜....

使用特权

评论回复
5
小浣熊| | 2015-7-24 15:46 | 只看该作者
你们都是大牛。。。。

使用特权

评论回复
6
zh113214| | 2015-7-24 15:58 | 只看该作者
学习了。。

使用特权

评论回复
7
zhou0214|  楼主 | 2015-7-24 16:09 | 只看该作者

我只是把资源分享给大家而且    我是小白。。

使用特权

评论回复
8
周董| | 2015-7-24 16:11 | 只看该作者
看看,,,,

使用特权

评论回复
9
1020327971| | 2017-7-10 22:35 | 只看该作者
参观学习来啦

使用特权

评论回复
10
L14133| | 2017-7-11 10:16 | 只看该作者
写的好,有帮助

使用特权

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

本版积分规则

11

主题

79

帖子

1

粉丝