STM32f4和f1串口USART初始化之minifly

外设可理解为复用功能
其中第3点,开启所想要的复用功能
对与stm32的GPIO引脚来说,引脚有默认的复用功能也就是说这个引脚除了可以当普通的I/O口,它还能当定时器Tim,ADC,DAC,DMA,EXTIX,SPI,IIC,USATRT等,但是有一点要注意,就是这个引脚有能当这个复用功能用,但是它可能不是默认的复用功能,是其他引脚的默认功能映射到此引脚,它才有了这个功能,还有,功能映射不是想随便映射到哪个引脚就能的,都是指定的。总之,复用功能来自默认和映射。
在这里插入图片描述

**对于stm32f103系列芯片,

1,找到复用功能引脚
** 采用的是M3内核,查阅手册,它复用功能来自默认和映射.
在这里插入图片描述
USART2_TX——PA2
USART2_RX——PA3
2,查阅复用重映射和调试I/O配置寄存器(AFIO_MAPR)
在这里插入图片描述
USART1_REMP——2
USART2_REMP——3
USART3_REMP——4-5(有部分映射功能,所以由两个位选择)

对于stm32f4系列芯片,采用的是M4内核

1,找到复用功能引脚
在这里插入图片描述
USART2_TX——PA2
USART2_RX——PA3

2,而在stm32f4的手册中,没有复用重映射和调试I/O配置寄存器(AFIO_MAPR)GPIO_PinRemapConfig,
没有发f1的映射函数GPIO_PinRemapConfig,类似的是函数是GPIO_PinAFConfig,复用功能配置函数,貌似想要哪个功能,直接配置,不考虑映射的还是默认的复用功能。
怎么做到的呢?
F1的GPIO结构体:
在这里插入图片描述
F4的GPIO结构体:
在这里插入图片描述
F4的有2个复用功能寄存器,大概就是它起的作用把,此函数操作的也是这2个寄存器
在这里插入图片描述

在这里插入图片描述

void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)

第二个参数GPIO_PinSource取自:
在这里插入图片描述
第三个参数GPIO_AF取自:
在这里插入图片描述
解释一下这2个复用功能寄存器:
在这里插入图片描述
AFRL对应每个GPIOX的0-7引脚。
在这里插入图片描述
AFRH对应每个GPIOX的8-15引脚。
AF0,AF1…是什么东西?
看表可知,每个引脚有4个位,也就是最多有16种选择,来选择对应的复用功能,每个AFx对应一个复用功能,具体打开F4的数据手册,见下表:
PA0-PA12引脚所具有的复用功能:
在这里插入图片描述
PA3-PA15,PB0-PB9,引脚所具有的复用功能:
在这里插入图片描述
PB10-PB15,引脚所具有的复用功能:
在这里插入图片描述
PC0-PC14,引脚所具有的复用功能:
在这里插入图片描述
PC15,PD0-PD11,引脚所具有的复用功能:
在这里插入图片描述
PD12-PD15,PE0-PE10,引脚所具有的复用功能:
在这里插入图片描述
PE11-PE15,引脚所具有的复用功能:
在这里插入图片描述
进入代码,将这个坑一挖到底
看列,每列是相同的,上面的表和stm32f4xx_gpio.h里面的代码,宏定义一致:
在这里插入图片描述
举例说明
在这里插入图片描述

比如:下面代码的GPIO_AF_USART2,对应上面的AF07列,为0x07.二进制是0111

/*端口映射*/
	GPIO_PinAFConfig(UARTSLK_GPIO_PORT, UARTSLK_GPIO_AF_TX_PIN, UARTSLK_GPIO_AF_TX);// GPIOA,GPIO_PinSource2,GPIO_AF_USART2
	GPIO_PinAFConfig(UARTSLK_GPIO_PORT, UARTSLK_GPIO_AF_RX_PIN, UARTSLK_GPIO_AF_RX);// GPIOA,GPIO_PinSource3,GPIO_AF_USART2

GPIO_PinAFConfig函数的作用就是将
上面的函数是用来接收遥控器发送过来数据.AFx对应的四位二进制写入ARFRL和AFRH寄存器,达到设置的目的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值