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

STM32F1到STM32F0的标准库移植指南--GPIO篇

参考文档:AN4088
在这里插入图片描述

GPIO 接口

与 F1 系列相比,STM32F0 GPIO 外设内置了多个新特性,主要包括:

  • GPIO 映射到 AHB 总线上,可以获得更佳的性能。
  • I/O 引脚复用器和映射:引脚通过多路复用器连接到片上外设 / 模块,该复用器一次只允许一个外设复用功能 (AF) 连接到 I/O 引脚。这样便可确保共用同一个 I/O 引脚的外设之间不会发生冲突。
  • I/O 配置的方式和特性更加丰富。

F0 GPIO 外设是一项全新的设计,因此在结构、特性和寄存器方面均不同于 F1 系列中的GPIO 外设。使用 GPIO 写入 F1 系列的任何代码都需要重写后才能在 F0 系列上运行。
有关 STM32F0 的 GPIO 编程和使用的详细信息,请参见 STM32F0xx 参考手册 (RM0091)中 GPIO 一章的“I/O 引脚复用器和映射”部分。
下表介绍了 STM32F1 系列与 STM32F0 系列中 GPIO 之间的区别。
在这里插入图片描述
在这里插入图片描述

复用功能模式

STM32F1 系列

  1. I/O 用作复用功能的配置取决于所使用的外设模式。例如,USART Tx 引脚应配置为复用功能推挽,而 USART Rx 引脚应配置为输入悬空或输入上拉。
  2. 为针对不同器件封装(尤其是引脚数较少的器件)优化外设 I/O 功能的数量,可以用软件将某些复用功能重新映射到其它引脚上。例如,可将 USART2_RX 引脚映射到 PA3(默认重映射)或 PD6(软件重映射)上。

STM32F0 系列

  1. 不论使用何种外设模式,都必须将 I/O 配置为复用功能,之后系统才能正确使用 I/O(输入或输出)。
  2. I/O 引脚通过复用器连接到片上外设/模块,该复用器一次只允许一个外设的复用功能 (AF)连接到 I/O 引脚。这样便可确保共用同一个 I/O 引脚的外设之间不会发生冲突。每个 I/O引脚都有一个复用器,该复用器具有八路复用功能输入(AF0 到 AF7),可通过
    GPIOx_AFRL 和 GPIOx_AFRH 寄存器对这些输入进行配置:
    — 通过配置 AF0 到 AF7 可以映射外设复用功能。
  3. 除了这种灵活的 I/O 复用架构之外,各外设还具有映射到不同 I/O 引脚的复用功能,这可以针对不同器件封装优化外设 I/O 功能的数量。例如,可将 USART2_RX 引脚映射到PA3 或 PA15 引脚上。

注: 有关系统和外设复用功能 I/O 引脚映射的详细信息,请参见 STM32F0x 数据手册中的“复用
功能映射”表。

  1. 配置过程
  • 在 GPIOx_MODER 寄存器中将所需 I/O 配置为复用功能
  • 通过 GPIOx_OTYPER、GPIOx_PUPDR 和 GPIOx_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度
  • 将 I/O 连接到 GPIOx_AFRL 或 GPIOx_AFRH 寄存器中所需的 AFx

GPIO 配置更新

本节介绍了将应用程序代码从 STM32 F1 系列移植到 F0 系列时如何更新各 GPIO 模式的
配置。
输出模式
在这里插入图片描述

输入模式
在这里插入图片描述

模拟模式
在这里插入图片描述
复用功能模式
在这里插入图片描述
在这里插入图片描述
至于怎么看服用映射,可以看芯片手册,都有对应的的,也可以看库函数说明。
在这里插入图片描述

http://www.dtcms.com/a/308388.html

相关文章:

  • 认知绞肉机:个体实践视域下认知暴力与元认知升维的活体实验研究
  • 如何将 Redis 监控集成到微服务整体的监控体系中( 如 Prometheus + Grafana)
  • [12月考试] E
  • 使用EasyPOI实现Java订单数据导出(含多物料信息)——模板语法详解与实战
  • Redis实战(4)-- BitMap结构与使用
  • uvicorn 启动重复加载 多次加载
  • 【LeetCode 热题 100】4. 寻找两个正序数组的中位数——(解法一)线性扫描
  • C++(模板)
  • java笔记——ConcurrentLinkedQueue
  • AUTOSAR进阶图解==>AUTOSAR_SRS_FunctionInhibitionManager
  • axios封装对比
  • 记录自己使用gitee和jenkins
  • PHP反序列化学习+解析+复现
  • 提升Windows操作效率:三款实用辅助工具功能解析​
  • 代码随想录Day35:动态规划(背包问题 二维 一维、分割等和子集)
  • Spring Boot整合MyBatis-Plus全攻略
  • 如何监控项目的每个阶段,提高执行效率
  • SchemaCrawler:一款免费开源的数据库文档工具
  • 斐波那契数
  • AI学习笔记三十三:基于Opencv的单目标跟踪
  • OpenCSG月度更新2025.7
  • leecode18 四数之和
  • 个股期权合约期内遇到标的停牌,如何处置?
  • DoRA详解:从LoRA到权重分解的进化
  • Redis线程模型讨论
  • 修改VSCode远程SSH的PATH
  • JVM字节码文件结构剖析
  • JVM学习日记(十二)Day12
  • 解释 MySQL 中的 EXPLAIN 命令的作用和使用场景
  • 格雷希尔G25F系列电气端口快速封堵接头,解决电池包、电机控制器等壳体的气密性测试难题,提升效率与可靠性,助力新能源汽车生产。