• 【【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 文件中可以找到。

  • 相关阅读:
    销售管理岗位竞聘PPT模板
    C++标准输入输出和名字空间
    Skywalking系列学习之Trace Profiling源码分析
    你适不适合当一个Java程序员?从这几点来判断
    微信最新更新隐私策略(2023-08-15)
    bp(back propagation)
    我准备了2个月,怒刷面试题,4面字节跳动测试岗,顺利拿到 offer
    深度理解 RGMII (包含Linux和realtek)
    requests模块get方法使用
    cf #832 Div.2(A-D)
  • 原文地址:https://blog.csdn.net/weixin_50965981/article/details/132638933