STMCU小助手
发布时间:2021-12-18 17:42
|
声明:本篇博客并不是一个详细的教程,只是对本篇涉及到的知识点进行简单整理,罗列出其中疑难、易引起误解的地方。若想对该功能进行全方位的了解,建议直接去看手册。本篇博客分为功能介绍、cubemx界面介绍、hal库函数功能说明、例程Demo四部分。 STM32_H7_GPIO 功能介绍 -摘抄手册, m! n- p/ ]3 [2 g$ ~0 J n 简介8 p3 V* Q* u5 t4 E3 f* d 每个通用 I/O 端口包括 :# ?; P* Q) z+ ]6 H# K% V 0 G4 r% j+ p* I- K3 L+ x 4 个 32 位配置寄存器 (GPIOx_MODER、 GPIOx_OTYPER、GPIOx_OSPEEDR 和 GPIOx_PUPDR); c6 s6 o' b! x" T( Z. \) o 2 个 32 位数据寄存器(GPIOx_IDR 和 GPIOx_ODR)9 D% i" Q6 d# i/ |/ x 1 个 32 位置位/复位寄存器 (GPIOx_BSRR)。2 T+ p/ I4 X8 g5 H% e, Q* I 此外,所有 GPIO 都包括 : 1 个 32 位锁定寄存器 (GPIOx_LCKR) 2 个 32 位复用功能选择寄存器(GPIOx_AFRH 和 GPIOx_AFRL)。 主要特性 从 输出数据寄存器 (GPIOx_ODR) 或外设(复用功能输出)输出数据: x2 o/ |" ], |1 l# f" h6 n" _ 将数据输入到 输入数据寄存器 (GPIOx_IDR) 或外设(复用功能输入)' h9 n8 P: T' v% r0 u 可为每个 I/O 选择不同的速度 置位和复位寄存器 (GPIOx_BSRR),对 GPIOx_ODR 具有按位写权限 锁定机制 (GPIOx_LCKR),可冻结 I/O 端口配置 快速翻转,每次翻转最快只需要两个时钟周期3 U! _5 x5 h4 O9 j9 e7 G 引脚复用非常灵活,允许将 I/O 引脚用作 GPIO 或多种外设功能中的一种$ b2 T: f9 _) W; p/ |: u 可通过软件将通用 I/O (GPIO) 端口的各个端口 位分别配置为多种模式:3 V7 v- ?% U8 u$ N/ O 0 a& U- P6 I% Y: C, Z+ S GPIO框图$ z+ \) y1 r5 _ _3 v! B& l0 t
框图说明:! u, |: J( ^5 t0 ?3 W 只需要对上图中的黄色框进行不同的配置,就可将通用 I/O (GPIO) 端口的各个端口位分别配置为多种模式: 6 V+ o3 r7 s; \3 P 输入浮空# D8 m7 D; E+ @: G 输入上拉 输入下拉* \; q% I% M1 f' G8 v3 O8 x 模拟输入, I2 k+ L G# x- d7 n3 f2 Z$ M5 v/ N 开漏输出 推挽输出 复用功能推挽 复用功能开漏9 h) u! J/ g$ l, z2 ? 具体如何配置,在手册(RM0433)第11.3.9、11.3.10、11.3.12、11.3.13小节里有详细的描述,这里不再展开说明。 补充描述4 V9 q6 j/ U9 \. {1 \( N) T 上电复位后引脚状态: 8 @% y. b2 k' a/ H9 g! R- o' e 在复位期间及复位刚刚完成后,大多数 I/O 端口被配置为输入浮空模式。但以下调试功能相关端口例外:( C0 W5 p" F1 x2 j6 `: z + v5 r( W4 g6 w, P* I PA15:JTDI 处于上拉状态 PA14:JTCK/SWCLK 处于下拉状态" c1 p6 U9 i6 a. x# U7 Z" ^& B PA13:JTMS/SWDAT 处于上拉状态3 i' S2 |. z9 n PB4:NJTRST 处于上拉状态0 E/ _7 |9 h" \; g7 H/ p PB3:JTDO 处于浮空状态" h; m$ p& O2 j & n+ e) Q; k9 S6 s( Q; d w$ R 输入数据寄存器每个 AHB 时钟周期对 I/O 引脚上的数据进行一次采样,在将IO配置为输出时,仍然可以通过输入数据寄存器读取IO电平 . k# ? p( U# ~2 F& _& Y# u* P n I/O 引脚复用功能复用器和映射/ b! F9 U- H4 C' ^, _ , e$ `% R' ?: S T. {: U 要在外设复用功能配置下使用 I/O,用户必须按照以下步骤操作:% B- d% L5 H+ G* W" n c3 _$ H( q; m, B) b 在 GPIOx_AFRL 或 GPIOx_AFRH 寄存器中,将 I/O 连接到所需的 AFx。 通过 GPIOx_OTYPER、GPIOx_PUPDR 和 GPIOx_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度。6 c/ `6 V2 F& l6 x* { 在 GPIOx_MODER 寄存器中将所需 I/O 配置为复用功能。 对于 ADC 和 DAC等外设,请查阅手册后进行操作。 , a' U( g) u+ j/ i' U, c! U GPIO寄存器+ Y; J9 \7 D6 v8 F, M 请查阅手册(RM0433)第11.4节。 ; D. ]7 V* e( \/ N2 Z( l8 D STM32CubeMX STM32CubeMX关于GPIO的配置比较简单,截图说明如下(以输出模式为例):
/ I: ^6 l, N- t) M6 a- f' y HAL/LL库函数功能说明 控制GPIO相关的HAL库函数不多,只有8个,列表如下:) Q. m& O6 J+ h6 _* h3 ^5 a7 H 7 n. C2 x, N5 a% q
& k7 Q1 @# U: F4 K$ q$ b" }- q5 B 详细功能去阅读库函数说明文档。例如:STM32H753xx_User_Manual.chm,可在官网下载。8 C8 `' c& _' c( g9 R2 W4 ^9 C % d: S+ Y) v2 R5 f- [" t DEMO. i' o5 [/ q9 J9 ?# [ 所有DEMO均提供Keil和STM32CubeIDE两个版本,且同时在github和码云进行备份。 7 e6 s# D+ ?0 u( y' Z
|
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
【STM32H735G-DK测评】ADC3+TIMER1+DMA 采样模拟信号
【STM32H735DK测评】Ethernet+lwip DHCP获取IP地址
STM32H743基于CubeMx5.0配置手册
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
【福利三:逢7发帖赢大礼】使用MPU6050模块、img_dsc、img_btn机制实现一些简单有趣的动画效果
【福利三:逢7发帖赢大礼】使用arc弧形拉条控件控制PWM舵机及使用SPI3接口操作NRF24L01模块进行无线通信
【福利三:逢7发帖赢大礼】调试nucleo-WBA65RI工程测试样板的一些心得
【福利三:逢7发帖赢大礼】lv_timer和BME680实现温度、湿度、气压数据读取
微信公众号
手机版