你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32_H7_GPIO

[复制链接]
STMCU小助手 发布时间:2021-12-18 17:42
声明:本篇博客并不是一个详细的教程,只是对本篇涉及到的知识点进行简单整理,罗列出其中疑难、易引起误解的地方。若想对该功能进行全方位的了解,建议直接去看手册。本篇博客分为功能介绍、cubemx界面介绍、hal库函数功能说明、例程Demo四部分。
2 \( F2 N. C% G7 f" A5 m
! D3 s% @' {. f- i- rSTM32_H7_GPIO
* b; W: L3 s2 E4 g1 z" n) t9 X
& E2 z7 c. s8 `! t9 y' j  q/ E功能介绍
" v+ p  s- _" j# W! o. q-摘抄手册, m! n- p/ ]3 [2 g$ ~0 J  n

( _! m. Q. V. x0 D% I1 f. c5 {, 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 b( P* R5 r# u% i5 D$ R
5 p; N  h" u( {+ _1 个 32 位锁定寄存器 (GPIOx_LCKR)
* o3 [4 o1 @  u2 个 32 位复用功能选择寄存器(GPIOx_AFRH 和 GPIOx_AFRL)。
8 j. E, y$ B7 I主要特性
/ V, S$ m* ]1 p* x. i+ h从 输出数据寄存器 (GPIOx_ODR) 或外设(复用功能输出)输出数据: x2 o/ |" ], |1 l# f" h6 n" _
将数据输入到 输入数据寄存器 (GPIOx_IDR) 或外设(复用功能输入)' h9 n8 P: T' v% r0 u
可为每个 I/O 选择不同的速度
# u4 E8 n; R1 l, X置位和复位寄存器 (GPIOx_BSRR),对 GPIOx_ODR 具有按位写权限
' E2 E6 R5 Y+ G1 e& T/ t2 q锁定机制 (GPIOx_LCKR),可冻结 I/O 端口配置
, B9 t! ?, O# U- G. c- L- F快速翻转,每次翻转最快只需要两个时钟周期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

6 H% l3 v) b) C" i$ |, U 20200312130916898.png 3 s' l+ p2 d5 j9 H$ Q* U9 M* Z% k

: M, f9 y- [- @( p; K8 Y6 b! S框图说明:! u, |: J( ^5 t0 ?3 W
只需要对上图中的黄色框进行不同的配置,就可将通用 I/O (GPIO) 端口的各个端口位分别配置为多种模式:
2 L- t5 e' W- I% O6 P# p* A6 V+ o3 r7 s; \3 P
输入浮空# D8 m7 D; E+ @: G
输入上拉
* ^- K+ h8 l  K0 v0 n输入下拉* \; q% I% M1 f' G8 v3 O8 x
模拟输入, I2 k+ L  G# x- d7 n3 f2 Z$ M5 v/ N
开漏输出
& N0 G# z+ `  o推挽输出
9 a/ u0 I- u$ ?复用功能推挽
* I. i; _5 {' v$ C2 Q) d复用功能开漏9 h) u! J/ g$ l, z2 ?
具体如何配置,在手册(RM0433)第11.3.9、11.3.10、11.3.12、11.3.13小节里有详细的描述,这里不再展开说明。
: {+ X6 f( v( b; ^( e0 T
! E7 W6 M9 \( E3 N" B5 @3 \补充描述4 V9 q6 j/ U9 \. {1 \( N) T
上电复位后引脚状态:
- J- k2 |0 G" Y, l' H8 @% 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 处于上拉状态
, M: v/ H7 O# q; S. q1 T+ d7 z$ RPA14: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

/ z( l+ [/ U9 R3 \' g, ~5 H4 C, m7 f& n+ e) Q; k9 S6 s( Q; d  w$ R
输入数据寄存器每个 AHB 时钟周期对 I/O 引脚上的数据进行一次采样,在将IO配置为输出时,仍然可以通过输入数据寄存器读取IO电平
2 F: C  u# i# {4 H: a2 [$ O. 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。
& Z8 q* ~5 H# g' d/ S* I0 A通过 GPIOx_OTYPER、GPIOx_PUPDR 和 GPIOx_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度。6 c/ `6 V2 F& l6 x* {
在 GPIOx_MODER 寄存器中将所需 I/O 配置为复用功能。
" y: a: N& b+ T# ?; a) {1 u对于 ADC 和 DAC等外设,请查阅手册后进行操作。
2 t1 [% O( ~) \8 M, a' U( g) u+ j/ i' U, c! U
GPIO寄存器+ Y; J9 \7 D6 v8 F, M
请查阅手册(RM0433)第11.4节。
3 n" X' T- B& s% G4 y& H  S, i; D. ]7 V* e( \/ N2 Z( l8 D
STM32CubeMX
4 e( F8 E# a) q6 n' C+ eSTM32CubeMX关于GPIO的配置比较简单,截图说明如下(以输出模式为例):
* y5 Y. _- w( _" N7 I" t
; F9 Z4 A8 y$ |- @! G( b8 z) F
20200228135621177.png

: |7 {: }* c6 E% ~& V+ B/ I: ^6 l, N- t) M6 a- f' y

1 N! N4 a% y. j6 R, k4 J4 |" t7 dHAL/LL库函数功能说明
* ?/ k* U: x8 ]8 ~7 {- M控制GPIO相关的HAL库函数不多,只有8个,列表如下:) Q. m& O6 J+ h6 _* h3 ^5 a7 H
7 n. C2 x, N5 a% q
`{Q(7G2EMBILGZMG9~2K_9F.png
2 q2 a( @' q9 b* k8 @
& 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和码云进行备份。
0 C4 h2 V: ]; b  h( P% l/ _% ?7 e6 s# D+ ?0 u( y' Z
N7{()2%}}ATUX_)RV%MSIMM.png
. u. E1 y& {0 q# |* I8 q

1 Y" v4 R2 N5 r' |2 c! b& c
2 g5 f2 I9 Q4 l3 E3 m$ m9 t
赞 收藏 评论0 发布时间:2021-12-18 17:42

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版