RCC_APB2Periph_AFIO、GPIO_PinRemapConfig,引脚一般使用、端口复用、重映射的用法

    STM32的引脚一般都可以有三种用法:普通引脚、复用成默认功能引脚和重定义功能,具体图在STM32数据手册(不是参考手册),如下

1、当我仅仅想把A2、A3当成普通引脚使用时(比如点灯),不需要使用复用、更不需要重定义(重映射)。正常配置输出模式、速度即可。

2、如下我想把A2、A3当做串口使用时,它可以从从上图看,他的默认复用功能时usart2_rx和tx。所以在配置时,还要配置  RCC_APB2PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE)(不需要使用RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE)去端口功能复用)

3、现在有这样一种情况:我想使用UART2去传输数据,但是我的B10、B11已经用成点灯且无法改变,那此时的做法如下:

如上图,我发现D8、D9的重定义功能是可以用来当uart3 使用的,则此时就需要配置复用功能和重定义(重映射)功能的语句

(1)、第一步:基本的引脚使能、UART3使能(因为要用到UART3和D8、D9)

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD |RCC_APB1Periph_USART3, ENABLE );  

(2)、第二步复用功能使能

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE); (情况二不需要)

(3)、第三步端口重映射使能:

    GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState)

函数的第一个形参具体GPIO_PartialRemap_USART3(部分重映射)、GPIO_FullRemap_USART3(全映射)。两种那选什么呢,在STM32中文参考手册第119页有具体要求:

在此表中D8、D9被规定为完全重映射,所以重映射使能语句如下:

GPIO_PinRemapConfig(GPIO_FullRemap_USART3, ENABLE);

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值