【STM32】IO引脚复用器和映射原理与配置
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引脚复用器和映射原理与配置相关推荐
- 22.IO引脚复用和映射原理与配置
IO引脚复用和映射原理与配置 参考资料: 正点原子STM32开发板: <STM32开发指南-HAL库版本>-4.4 IO引脚复用和映射 STM32F4xx官方资料: <STM32F4 ...
- (四)STM32F407总线架构、时钟系统配置相关的函数,IO 引脚复用器和映射,NVIC中断管理,寄存器地址映射
基础知识 一.GPIO输入输出各种模式 二.STM32F407总线架构 三.STM32F407时钟系统 (1) STM32F4 时钟树概述 (2)STM32F4 时钟初始化配置 (3)STM32F4 ...
- MCU学习笔记_IO引脚复用和映射
MCU学习笔记 IO引脚复用和映射 1. 端口复用 2. 端口复用配置过程 1. 端口复用 STM32有很多内置外设,外设的外部引脚都是与GPIO复用的.即,一个GPIO,如果可以复用为内置外设的功能 ...
- STM32 端口复用与重映射及低功耗引脚配置
STM32 端口复用与重映射及低功耗引脚配置 什么是复用? 在TSM32里面,大部分的引脚都是有GPIO复用功能,也就是说,一个 GPIO如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内 ...
- LoRa学习:SX127x芯片数字IO引脚映射
LoRa学习:SX127x芯片数字IO引脚映射 SX1276/7/8的6个DIO通用IO引脚在LoRa模式下均可用.它们的映射关系取决于RegDioMapping1和RegDioMapping2这两个 ...
- 使用stm32 定时器TIM3 的重映射引脚 捕获正交编码器数据的一些积累
关注+星标公众号,及时获取更多技术分享~ 作者 | 冰茶奥利奥 微信公众号 | 嵌入式电子创客街 因为我们公司的软件和硬件是分开的,硬件人员在设计电路板的时候,为了布线方便,往往会使用一些引脚的重映 ...
- STM32F103系列芯片的地址和寄存器映射原理、LED轮流闪烁实现
STM32F103系列芯片的地址和寄存器映射原理.LED轮流闪烁实现 文章目录 STM32F103系列芯片的地址和寄存器映射原理.LED轮流闪烁实现 1 51单片机和STM32的不同点 2 寄存器 2 ...
- 转载:stm32的引脚有两种用途
stm32的引脚有两种用途:GPIO(general purpose io)和AFIO(alternate function io) 对于一些引脚(视芯片而定),这两种用途都没有,如在64脚产品中,O ...
- 【嵌入式07】寄存器映射原理详解,GPIO端口的初始化设置步骤
本文主要介绍STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置步骤. 一.STM32F103系列芯片的地址映射和寄存器映射原理 1.什么是寄存器? 2.地址映射和寄存器映射 ...
最新文章
- opencv处理dicom图像_图像处理|opencv| 利用opencv把照片变换成素描风格
- Python 库引用提示:name ‘json‘ is not defined. 问题解决办法
- 在 ASP.NET Core 中集成 Skywalking APM
- Versions maven plugin 修改版本
- Hadoop生态Flume(二)安装配置
- Spring Cloud文档阅读笔记-初识Spring Cloud(对Spring Cloud初步了解)
- Centos7安装MariaDB10.28稳定版
- java jdbc封装_JDBC封装-Java(新手)
- servlet学习笔记_2
- JAVA命令行运行时设置参数
- 解决办法:av_interleaved_write_frame()返回-22 错误
- CarbonData源码浅析一:Create Table
- mysql数据库有dbo吗,sql server所有表的所有者恢复为dbo
- oracle数据库开发认证,数据库考试简介之Oracle认证
- 电脑版微信提示音mp3_安卓充电提示音修改教程,可以自定义哦~
- 就是上来吐槽一下树莓派上,编译个模块都过不去的郁闷。 欢迎使用CSDN-markdown编辑器
- Linux与Windows的区别与比较,及Linux基本命令
- 移动Web第七天(响应式网页:媒体查询、BootStrap)
- Java中protected的用法
- CMGCN 2022ACL
热门文章
- Spring Cloud Eureka 自我保护机制(EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY)
- 大数据架构Spark 进阶
- 求导,微分,积分的区别
- linux 极路由救砖,极路由救砖方法?
- 任正非谈“咖啡杯”文化
- java中考勤管理_JAVA人事员工考勤管理(含论文)源码
- 运维需要懂产品和运营吗?
- python爬虫入门——QQ音乐歌手照片及歌曲列表爬取
- KG-开源项目:QASystemOnMedicalKG【以疾病为中心的一定规模医药领域知识图谱,并以该知识图谱完成自动问答与分析服务】
- 电网负荷调度三维组态软件V2.0