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

端口复用与重映射

端口复用和重映射

STM32F1有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。

大家都知道,MCU都有串口,STM32有好几个串口,
比如说STM32F103RCT6有5个串口,我们可以查手册知道,串口1的引脚对应的IO为PA9,PA10。它们默认功能是GPIO,所以当PA9,PA10引脚作为串口1的TX,RX引脚使用的时候,就是端口复用。

在这里插入图片描述

配置步骤

  1. 首先,要使用IO复用功能,必须先打开对应的IO时钟和复用功能外设时钟。
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_USART1_CLK_ENABLE();
__HAL_RCC_AFIO_CLK_ENABLE(); //使能辅助功能IO时钟
  1. 然后再GPIOx_MODER寄存器中将所需IO配置为复用功能。
  2. 最后,对IO口的其它参数,例如上/下啦以及输出速度等进行配置。

上面三步中,通过HAL_GPIO_Init实现

GPIO_InitTypeDef GPIO_Initure;GPIO_Initure.Pin = GPIO_PIN_9;
GPIO_Initure.Mode = GPIO_MODE_AF_PP;
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;//高速
HAL_GPIO_Init(GPIOA,&GPIO_Initure);
http://www.lryc.cn/news/96519.html

相关文章:

  • ros2 launch 集合 gazebo yolov8 rviz2
  • SD NAND【商业】
  • 实现任意进制(2—32)转换
  • Spring Boot 集成 Redis 三种模式实践汇总
  • MySQL DQL语法
  • 算法之线性表1.1.1(7)带头结点链表的反向输出
  • 设计模式三:抽象工厂模式(Abstract Factory Pattern)
  • Linux用户权限问题详解
  • flask中的session介绍
  • 记录联想拯救者R720重装系统
  • Spring Alibaba Sentinel实现集群限流demo
  • 102、SOA、分布式、微服务之间有什么关系和区别?
  • Ubuntu 20.04下的录屏与视频剪辑软件
  • 面试题 -- iOS数据存储
  • spring复习:(51)environment、systemProperties、systemEnvironment三个bean是在哪里被添加到容器的?
  • element ui 上传控件携带参数到后端
  • scrapy分布式+指纹去重原理
  • FileHub使用教程:Github Token获取步骤,使用快人一步
  • 嵌入式开发:单片机嵌入式Linux学习路径
  • Libvirt的virsh工具常用命令
  • 高斯消元解异或方程组写法
  • 前端 mock 数据的几种方式
  • 【GO】go语言入门实战 —— 猜数字游戏
  • opencv-25 图像几何变换04- 透视 cv2.warpPerspective()
  • 视频讲解Codeforces Round 887 (Div. 2)(A--C)
  • 【团队协作开发】将Gitee项目导入到本地IDEA中出现根目录不完整的问题解决(已解决)
  • vue-pdf 单列显示多个pdf页面
  • 2023年FPGA好就业吗?
  • 【业务功能篇52】Springboot+mybatis mysql开启批量执行sql参数 allowMultiQueries=true
  • StableDiffusion 换脸实现