
声明:本篇博客并不是一个详细的教程,只是对本篇涉及到的知识点进行简单整理,罗列出其中疑难、易引起误解的地方。若想对该功能进行全方位的了解,建议直接去看手册。本篇博客分为功能介绍、cubemx界面介绍、hal库函数功能说明、例程Demo四部分。 STM32_H7_GPIO$ `* [6 W" P& F1 ~4 q% p 功能介绍! @! l R D3 O& h' L" [ -摘抄手册 w5 O. S+ |% g+ Y2 s x( w 简介# V1 [, V0 G0 g8 H 每个通用 I/O 端口包括 : 0 u2 G4 s5 }/ e; [) e5 U) n& X 4 个 32 位配置寄存器 (GPIOx_MODER、 GPIOx_OTYPER、GPIOx_OSPEEDR 和 GPIOx_PUPDR) 2 个 32 位数据寄存器(GPIOx_IDR 和 GPIOx_ODR)7 J8 b- w* F/ I4 d, w% B: ] 1 个 32 位置位/复位寄存器 (GPIOx_BSRR)。 此外,所有 GPIO 都包括 : % S2 H& x8 P u$ _7 r 1 个 32 位锁定寄存器 (GPIOx_LCKR)' k! L, ~, D, X4 G, X 2 个 32 位复用功能选择寄存器(GPIOx_AFRH 和 GPIOx_AFRL)。 主要特性 从 输出数据寄存器 (GPIOx_ODR) 或外设(复用功能输出)输出数据 将数据输入到 输入数据寄存器 (GPIOx_IDR) 或外设(复用功能输入) 可为每个 I/O 选择不同的速度& m& k6 y7 Z5 Z( g M9 A) w 置位和复位寄存器 (GPIOx_BSRR),对 GPIOx_ODR 具有按位写权限- S$ r: x @( w2 f' s6 n2 [ 锁定机制 (GPIOx_LCKR),可冻结 I/O 端口配置 快速翻转,每次翻转最快只需要两个时钟周期 引脚复用非常灵活,允许将 I/O 引脚用作 GPIO 或多种外设功能中的一种 可通过软件将通用 I/O (GPIO) 端口的各个端口 位分别配置为多种模式: GPIO框图 ![]() & E4 w5 {0 j3 K p& K6 @& i' b 框图说明: 只需要对上图中的黄色框进行不同的配置,就可将通用 I/O (GPIO) 端口的各个端口位分别配置为多种模式:/ G# a; G0 r' C/ A" n$ F5 ]+ C 输入浮空 输入上拉 输入下拉 模拟输入 开漏输出 推挽输出' ^% z& v! b3 g8 C5 G b0 \ ~ 复用功能推挽 复用功能开漏$ f4 w0 P3 I' s a+ ] 具体如何配置,在手册(RM0433)第11.3.9、11.3.10、11.3.12、11.3.13小节里有详细的描述,这里不再展开说明。 补充描述4 r' T+ z- Q7 S2 E 上电复位后引脚状态: 在复位期间及复位刚刚完成后,大多数 I/O 端口被配置为输入浮空模式。但以下调试功能相关端口例外:& \8 L# l2 ]' f. }. P 1 [. @! \+ k; M. e1 Q PA15:JTDI 处于上拉状态( ?* d" z$ ?; f+ ?( S9 w6 h PA14:JTCK/SWCLK 处于下拉状态 PA13:JTMS/SWDAT 处于上拉状态- N" S, L) |8 v9 L4 l, g& O% f PB4:NJTRST 处于上拉状态 PB3:JTDO 处于浮空状态7 v" D; R" j$ [ ' e& P8 e0 q- i, Z, o6 ]2 M6 ^ 输入数据寄存器每个 AHB 时钟周期对 I/O 引脚上的数据进行一次采样,在将IO配置为输出时,仍然可以通过输入数据寄存器读取IO电平 I/O 引脚复用功能复用器和映射' R6 B8 J- p, n" C 要在外设复用功能配置下使用 I/O,用户必须按照以下步骤操作: 在 GPIOx_AFRL 或 GPIOx_AFRH 寄存器中,将 I/O 连接到所需的 AFx。1 u) c. m! M6 a 通过 GPIOx_OTYPER、GPIOx_PUPDR 和 GPIOx_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度。 在 GPIOx_MODER 寄存器中将所需 I/O 配置为复用功能。, v9 R- X* }2 q4 N6 q. x( K 对于 ADC 和 DAC等外设,请查阅手册后进行操作。 GPIO寄存器 请查阅手册(RM0433)第11.4节。' H7 R7 r& u* u. ` 0 |1 F2 w' Y1 Z2 e0 D/ X! b7 i STM32CubeMX" o- H: c# i! C' ~$ \ STM32CubeMX关于GPIO的配置比较简单,截图说明如下(以输出模式为例): ![]() 3 X0 W+ |$ N! l0 p" V/ L HAL/LL库函数功能说明( d/ I& e( u/ L& f; q( m* H 控制GPIO相关的HAL库函数不多,只有8个,列表如下: ![]() % r5 F- f# a* l% B7 o 详细功能去阅读库函数说明文档。例如:STM32H753xx_User_Manual.chm,可在官网下载。 DEMO 所有DEMO均提供Keil和STM32CubeIDE两个版本,且同时在github和码云进行备份。6 m f! u: _( Q8 O n5 w" v' F. c8 d3 k- \! z. }; T8 U( c ![]() |
STM32H7的TCM,SRAM等五块内存基础知识
STM32H7的TCM,SRAM等五块内存基础知识
简单了解一下STM32H7的BDMA
有奖预约 | STM32H7R7基于RT-Thread RTOS的智能终端GUI解决方案
【STM32H745I-DISCO】基于TouchGFX的工业控制器界面设计
STM32H745I-DISCO串口打印
【STM32H745I-DISCO】TouchGFX探索——3、触屏滑屏操作与中文显示
TouchGFX软件下载及使用
【STM32H745I-DISCO】TouchGFX探索——2、照葫芦画瓢
STM32H745I-DISCO硬件信号为空,M4、M7对于硬件信号的优先性判断