当前位置: 首页 > news >正文

【【STM32--28--IO引脚的复用功能】】

STM32–28–IO引脚的复用功能

STM32的IO复用功能
何为复用?
我们先了解一下何为通用
IO端口的输入或输出是由GPIO外设控制,我们称之为通用
复用:
IO端口的输入或者是输出是由其他非GPIO外设控制就像经常说的USART 由 DR寄存器进行输出

STM32的IO复用功能
1.各个IO都支持什么复用功能
2.IO复用功能的冲突问题
在同一时间IO只能用作一种复用功能,否则会发生冲突
3,遇到IO复用功能冲突
我们的解决方法是可以考虑采用重映射功能,后续课程会讲解
我们知道芯片有许多外设,而引脚的资源是很有限的,为了解决这个问题,方法就是引脚
复用,这样使得引脚除了作为普通的 IO 口之外,还会与一些外设关联起来,作为第二功能使
用,而且一个引脚不单单只有一种复用功能,而是拥有多个第二功能,但是一次只允许一个外
设的复用功能,以确保共用同一个 IO 引脚的外设之间不会产生冲突。
AFIO 寄存器的作用就是复用功能 I/O 和调试配置的,STM32F103ZET6 共有 6 个 AFIO 的
寄存器,事件控制寄存器 AFIO_EVCR、复用重映射和调试 I/O 配置寄存器 AFIO_MAPR、外部
中断配置寄存器 AFIO_EXTICR1、外部中断配置寄存器 AFIO_EXTICR2、外部中断配置寄存器
AFIO_EXTICR3 和外部中断配置寄存器 AFIO_EXTICR4。

复用重映射和调试 I/O 配置寄存器 AFIO_MAPR 寄存器描述
在这里插入图片描述
在对 AFIO_MAPR 寄存器某些位进行写入实现引脚的重新映射,这时候,复用功能不再映射到它们原始分配上。例如 AFIO_MAPR 寄存器位 2 是对 USART1 的重映射,置 0: 没有重映像(TX/PA9,RX/PA10);置 1: 重映像(TX/PB6,RX/PB7)。默认情况下,PA9 和 PA10 是作为串口 1 的引脚使用,假如 PA9 和 PA10 被用作其他地方,但还是需要用到串口 1,那么就可以在 AFIO_MAPR 的位 2 置 1,把串口 1 的引脚重映射到 PB6 和 PB7。这个串口初始化的过程,就有点变化,需要初始化 AFIO 时钟,和对 AFIO_MAPR 的第 2 位进行置 1 操作,其他与普通串口配置没有区别。HAL 库已经把这些配置工作都定义好了,我们只需要去寻找这些复用的宏定义,这些关于端口复用相关的代码在 stm32f1xx_hal_gpio_ex.h 文件中可以找到。

http://www.lryc.cn/news/160979.html

相关文章:

  • CodeJock Active-X / COM v22.1.0 Crack
  • mac通过docker搭建elasticsearch:8.9.2以及kibana:8.9.2
  • python实现排列组合代码
  • 盲盒小程序开发方案
  • Mysql锁
  • Kubernetes(k8s)安装NFS动态供给存储类并安装KubeSphere
  • 机器学习笔记 - 【机器学习案例】基于KerasCV的预训练模型自定义多头+多标签预测
  • Linux Debian常用70条经典运维命令和使用案例
  • 【涵子来信】——步入中学,日积跬步,以致千里
  • 【sgCreateAPI】自定义小工具:敏捷开发→自动化生成API接口脚本(接口代码生成工具)
  • 数据库相关基础知识
  • LeetCode刷题笔记【23】:贪心算法专题-1(分发饼干、摆动序列、最大子序和)
  • C++算法 —— 分治(2)归并
  • Hadoop YARN HA 集群安装部署详细图文教程
  • BBS+商城项目的数据库表设计
  • 如何使用Savitzky-Golay滤波器进行轨迹平滑
  • Nomad系列-Nomad网络模式
  • OpenCV项目开发实战--实现面部情绪识别对情绪进行识别和分类及详细讲解及完整代码实现
  • Validate表单组件的封装
  • 企业架构LNMP学习笔记32
  • 基于Jetty9的Geoserver配置https证书
  • 企业互联网暴露面未知资产梳理
  • 【动态规划刷题 12】等差数列划分 最长湍流子数组
  • react-redux 的使用
  • 77 # koa 中间件的应用
  • 【css】z-index与层叠上下文
  • 系统架构设计师(第二版)学习笔记----多媒体技术
  • 【面试经典150 | 数组】合并两个有序数组
  • 系统架构设计专业技能 ·操作系统
  • CSP 202209-1 如此编码