IO引脚复用器和映射原理与配置

  • 什么是端口复用,STM32引脚怎么复用?

STM32有很多的内置外设(把RTC,ADC,看门狗等外设都集中在芯片里面了),这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。

例如串口1的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作GPIO,而用做复用功能串口1的发送接收引脚的时候,叫端口复用。

  • STM32(M4内核以上)的端口复用映射原理

STM32系列微控制器IO引脚通过一个复用器连接到内置外设或模块。该复用器一次只允许一个外设的复用功能(AF)连接到对应的IO口。这样可以确保共用同一个1O引脚的外设之间不会发生冲突。

每个I0引脚都有一个复用器,该复用器采用16路复用功能输入(AFO到AF15),可通过GPIOx_AFRL(针对引脚0-7)和GPIOxAFRH(针对引脚8-15)寄存器对这些输入进行配置,每四位控制一路复用。

比如我们要配置PA9,我们把它连接到AF7。相应寄存器位的配置如下:

AFRH9

rw

rw

rw

rw

0

1

1

1

PORTA部分端口AF映射表如下:

PA0

PA5

PA8

PA9

PA10

AF7

USART2_CTS

SPI1_SCK

USART1_CK

USART1_TX

USART1_RX

对于系统复用功能AF0,我们将I0口连接到AFO之后,还要根据所用功能进行配置:

(1)JTAG/SWD:在器件复位之后,会将这些功能引脚指定为专用引脚。也就是说,这些引脚在复位后默认就是JTAG/SWD功能。如果我们要作为GPI0来使用,就需要对对应的I0口复用器进行配置。

(2)RTC_REFIN:此引脚在系统复位之后要使用的话要配置为浮空输入模式。

(3)MCO1和MCO2:这些引脚在系统复位之后要使用的话要配置为复用功能模式。

外设复用功能:

对于ADC和DAC,在GPIOX_MODER寄存器中将所需I/0配置为模拟通道。

对于其它外设:

(1)在GPIOX_MODER寄存器中将所需I/O配置为复用功能

(2)通过GPIOX_OTYPER、GPIOX_PUPDR和GPIOX_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度

(3)在GPIOX_AFRL 或GPIOX_AFRH寄存器中,将I/O连接到所需AFx

  • 引脚复用配置过程?

端口复用为复用功能配置过程,以PA9,PA10配置为串口1为例

①GPIO端口时钟使能。

HALRCC_GPIOA_CLK_ENABLEO;//使能GPIO时钟

②复用外设时钟使能。

比如你要将端口PA9,PA10复用为串口,所以要使能串口时钟。

HAL_RCC_USART1_CLK_ENABLEO;//使能GPIO时钟

③端口模式配置为复用功能。HAL_GPIO_Init函数。

GPIO_Initure.Mode=GPIO_MODE_AF_PP;//复用推挽输出

④配置GPIOX_AFRL或者GPIOX_AFRH寄存器,将IO连接到所需的AFx。HAL_GPIO_Init函数。

GPIO Initure.Alternate=GPIO AF7_USART1;//复用为USART1

【STM32】IO引脚复用器和映射原理与配置相关推荐

  1. 22.IO引脚复用和映射原理与配置

    IO引脚复用和映射原理与配置 参考资料: 正点原子STM32开发板: <STM32开发指南-HAL库版本>-4.4 IO引脚复用和映射 STM32F4xx官方资料: <STM32F4 ...

  2. (四)STM32F407总线架构、时钟系统配置相关的函数,IO 引脚复用器和映射,NVIC中断管理,寄存器地址映射

    基础知识 一.GPIO输入输出各种模式 二.STM32F407总线架构 三.STM32F407时钟系统 (1) STM32F4 时钟树概述 (2)STM32F4 时钟初始化配置 (3)STM32F4 ...

  3. MCU学习笔记_IO引脚复用和映射

    MCU学习笔记 IO引脚复用和映射 1. 端口复用 2. 端口复用配置过程 1. 端口复用 STM32有很多内置外设,外设的外部引脚都是与GPIO复用的.即,一个GPIO,如果可以复用为内置外设的功能 ...

  4. STM32 端口复用与重映射及低功耗引脚配置

    STM32 端口复用与重映射及低功耗引脚配置 什么是复用? 在TSM32里面,大部分的引脚都是有GPIO复用功能,也就是说,一个 GPIO如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内 ...

  5. LoRa学习:SX127x芯片数字IO引脚映射

    LoRa学习:SX127x芯片数字IO引脚映射 SX1276/7/8的6个DIO通用IO引脚在LoRa模式下均可用.它们的映射关系取决于RegDioMapping1和RegDioMapping2这两个 ...

  6. 使用stm32 定时器TIM3 的重映射引脚 捕获正交编码器数据的一些积累

    关注+星标公众号,及时获取更多技术分享~  作者 | 冰茶奥利奥 微信公众号 | 嵌入式电子创客街 因为我们公司的软件和硬件是分开的,硬件人员在设计电路板的时候,为了布线方便,往往会使用一些引脚的重映 ...

  7. STM32F103系列芯片的地址和寄存器映射原理、LED轮流闪烁实现

    STM32F103系列芯片的地址和寄存器映射原理.LED轮流闪烁实现 文章目录 STM32F103系列芯片的地址和寄存器映射原理.LED轮流闪烁实现 1 51单片机和STM32的不同点 2 寄存器 2 ...

  8. 转载:stm32的引脚有两种用途

    stm32的引脚有两种用途:GPIO(general purpose io)和AFIO(alternate function io) 对于一些引脚(视芯片而定),这两种用途都没有,如在64脚产品中,O ...

  9. 【嵌入式07】寄存器映射原理详解,GPIO端口的初始化设置步骤

    本文主要介绍STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置步骤. 一.STM32F103系列芯片的地址映射和寄存器映射原理 1.什么是寄存器? 2.地址映射和寄存器映射 ...

最新文章

  1. opencv处理dicom图像_图像处理|opencv| 利用opencv把照片变换成素描风格
  2. Python 库引用提示:name ‘json‘ is not defined. 问题解决办法
  3. 在 ASP.NET Core 中集成 Skywalking APM
  4. Versions maven plugin 修改版本
  5. Hadoop生态Flume(二)安装配置
  6. Spring Cloud文档阅读笔记-初识Spring Cloud(对Spring Cloud初步了解)
  7. Centos7安装MariaDB10.28稳定版
  8. java jdbc封装_JDBC封装-Java(新手)
  9. servlet学习笔记_2
  10. JAVA命令行运行时设置参数
  11. 解决办法:av_interleaved_write_frame()返回-22 错误
  12. CarbonData源码浅析一:Create Table
  13. mysql数据库有dbo吗,sql server所有表的所有者恢复为dbo
  14. oracle数据库开发认证,数据库考试简介之Oracle认证
  15. 电脑版微信提示音mp3_安卓充电提示音修改教程,可以自定义哦~
  16. 就是上来吐槽一下树莓派上,编译个模块都过不去的郁闷。 欢迎使用CSDN-markdown编辑器
  17. Linux与Windows的区别与比较,及Linux基本命令
  18. 移动Web第七天(响应式网页:媒体查询、BootStrap)
  19. Java中protected的用法
  20. CMGCN 2022ACL

热门文章

  1. Spring Cloud Eureka 自我保护机制(EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY)
  2. 大数据架构Spark 进阶
  3. 求导,微分,积分的区别
  4. linux 极路由救砖,极路由救砖方法?
  5. 任正非谈“咖啡杯”文化
  6. java中考勤管理_JAVA人事员工考勤管理(含论文)源码
  7. 运维需要懂产品和运营吗?
  8. python爬虫入门——QQ音乐歌手照片及歌曲列表爬取
  9. KG-开源项目:QASystemOnMedicalKG【以疾病为中心的一定规模医药领域知识图谱,并以该知识图谱完成自动问答与分析服务】
  10. 电网负荷调度三维组态软件V2.0