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

【经验分享】STM32_H7_GPIO

[复制链接]
STMCU小助手 发布时间:2021-12-18 17:42
声明:本篇博客并不是一个详细的教程,只是对本篇涉及到的知识点进行简单整理,罗列出其中疑难、易引起误解的地方。若想对该功能进行全方位的了解,建议直接去看手册。本篇博客分为功能介绍、cubemx界面介绍、hal库函数功能说明、例程Demo四部分。
- S; n  P* m# h2 t% @
# {: B/ x9 ?& TSTM32_H7_GPIO  x% |( T' F- ~, t) c9 b" G* h9 M1 p

) z& k0 N/ r& R功能介绍7 a* N, x' Y& K" B
-摘抄手册
/ y1 }4 e+ c: A% q3 Y+ l* L: L3 r! l
简介7 C) Q) u4 L9 ~( b$ p
每个通用 I/O 端口包括 :
* D% Q5 R2 @5 H9 G* }
* b, Z- B; h0 |" w1 a* J& J4 个 32 位配置寄存器 (GPIOx_MODER、 GPIOx_OTYPER、GPIOx_OSPEEDR 和 GPIOx_PUPDR)' ?  O1 e; Q1 o5 H; v
2 个 32 位数据寄存器(GPIOx_IDR 和 GPIOx_ODR)0 }7 @. U$ J9 v, Q/ `
1 个 32 位置位/复位寄存器 (GPIOx_BSRR)。  M  C7 F8 ?" A5 k* R6 b
此外,所有 GPIO 都包括 :
* {. U- _! E5 |% o# k# Q  @9 ]. M* U. S; {
1 个 32 位锁定寄存器 (GPIOx_LCKR)
' p4 u' X. T; y& e2 个 32 位复用功能选择寄存器(GPIOx_AFRH 和 GPIOx_AFRL)。
* |1 Z3 E# w) W7 A- c& `" K" y0 A主要特性( U" V. p' [: l
从 输出数据寄存器 (GPIOx_ODR) 或外设(复用功能输出)输出数据
# s) x8 c) V( r7 V& A1 Q& L将数据输入到 输入数据寄存器 (GPIOx_IDR) 或外设(复用功能输入)
6 Z) D7 e0 d9 I7 i* y* M可为每个 I/O 选择不同的速度; T. o: u/ F- R+ S* I  |
置位和复位寄存器 (GPIOx_BSRR),对 GPIOx_ODR 具有按位写权限
5 c5 `1 }. ?7 o  c* K& ?锁定机制 (GPIOx_LCKR),可冻结 I/O 端口配置: d5 I0 B1 |& I6 b
快速翻转,每次翻转最快只需要两个时钟周期
9 s5 }  A, n+ l引脚复用非常灵活,允许将 I/O 引脚用作 GPIO 或多种外设功能中的一种0 E1 x- ]; {$ N
可通过软件将通用 I/O (GPIO) 端口的各个端口 位分别配置为多种模式:
. U: Z& I/ `) J- r7 M/ z+ t2 A% _
, N9 q+ ^' A8 }5 C4 I! Y+ xGPIO框图) u( H1 N0 k1 H* Q0 j* r! m

2 \1 G& b5 X6 W( B$ { 20200312130916898.png 1 V( ]# |; Y( t

2 u% B* q& [# K/ _4 H# J. w框图说明:" {" {4 |; X& K/ }5 U6 Y
只需要对上图中的黄色框进行不同的配置,就可将通用 I/O (GPIO) 端口的各个端口位分别配置为多种模式:2 _! y& }& p# h

; o" @/ u6 L) G8 W# _输入浮空
- Z; x: G" N% e& w( D输入上拉& [. \9 S0 Y; O! `! E- A. Q
输入下拉
( d) m9 L# u) c6 g8 w0 A/ S模拟输入
& p8 c4 o$ D: Y8 Y( _开漏输出
/ q: J; V' m* t! y推挽输出1 ^: M" P8 _( |8 ^; B, J. w
复用功能推挽# Z3 W: V; v/ [6 C- B
复用功能开漏
6 q! O' ]# y" r. a8 F% o* {% }具体如何配置,在手册(RM0433)第11.3.9、11.3.10、11.3.12、11.3.13小节里有详细的描述,这里不再展开说明。
  O* Z- H6 p1 c
  C6 T4 G$ k/ k1 t" r6 ?0 {补充描述
1 ^5 b2 ~, Z5 d, ]上电复位后引脚状态:; r# e  C: v4 Y5 m* Y, K- S/ c" n
6 Y* M- B  G4 [9 K
在复位期间及复位刚刚完成后,大多数 I/O 端口被配置为输入浮空模式。但以下调试功能相关端口例外:
& U( n  z8 Z5 A' G1 }5 X
% l5 W4 g* a3 {8 Y6 x! P. R, w8 |) cPA15:JTDI 处于上拉状态
% y0 l# W" |2 _7 rPA14:JTCK/SWCLK 处于下拉状态
" t* j: ^, C2 {; x& j1 H  gPA13:JTMS/SWDAT 处于上拉状态# T3 \5 b- x% J0 o
PB4:NJTRST 处于上拉状态9 I& {, ^% `  S2 S) Q
PB3:JTDO 处于浮空状态6 x5 E( V0 e2 o4 \; |+ c9 o

: i  Y9 |6 ^. M' E9 y4 ]5 G
" S8 T9 J* E( E6 i: B输入数据寄存器每个 AHB 时钟周期对 I/O 引脚上的数据进行一次采样,在将IO配置为输出时,仍然可以通过输入数据寄存器读取IO电平
- w: `5 O+ V( o, E* A, k0 B
2 o3 B4 K) f% U9 G4 _3 EI/O 引脚复用功能复用器和映射
" \, S+ h( `; F$ ~5 D2 J: f& _, A! d3 I5 l# k
要在外设复用功能配置下使用 I/O,用户必须按照以下步骤操作:2 m0 ]8 K9 ^/ I- L8 c
! K: M3 r( `. s' J" X1 _2 w
在 GPIOx_AFRL 或 GPIOx_AFRH 寄存器中,将 I/O 连接到所需的 AFx。
$ Q# C; w( J/ l/ @* X: F通过 GPIOx_OTYPER、GPIOx_PUPDR 和 GPIOx_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度。* W3 J8 j. b" {  A
在 GPIOx_MODER 寄存器中将所需 I/O 配置为复用功能。
% r# ?, D- ^1 c8 X5 b对于 ADC 和 DAC等外设,请查阅手册后进行操作。
% S9 ^) G$ K) m2 I( Y  h  R/ ?8 v4 d5 x6 c/ ~. L
GPIO寄存器& F9 ]( F4 O7 j6 V  _
请查阅手册(RM0433)第11.4节。
6 z7 N$ `. \( L5 I% c& ^4 w0 H5 p4 H: ^5 h) [
STM32CubeMX( G) B' K8 Z: F# V
STM32CubeMX关于GPIO的配置比较简单,截图说明如下(以输出模式为例):
1 S6 F5 C. o0 y/ a  W% [2 ~5 z8 n. e
0 P  N2 g- P$ x) U4 e) j
20200228135621177.png

3 ?- y$ B: t+ I# r* f: f! k% s# d5 D6 c
: x% P% s! h; q+ M" L: k0 m
HAL/LL库函数功能说明( r# l% d) T# x. T  d" L
控制GPIO相关的HAL库函数不多,只有8个,列表如下:9 T  x& x* X' |7 N, [

' l4 k9 K. _+ t0 E+ ]7 m0 |" A) c
`{Q(7G2EMBILGZMG9~2K_9F.png
) h7 o2 A: O( b' V( z# Y/ r8 q* Z1 g
0 X8 A) ~5 U4 t. o; Y' H
详细功能去阅读库函数说明文档。例如:STM32H753xx_User_Manual.chm,可在官网下载。8 h. L: ]1 N0 \0 k: {. r8 V* O
; e/ y8 ]+ ?7 N" k' w
DEMO& n* f5 r/ C  o& @9 o
所有DEMO均提供Keil和STM32CubeIDE两个版本,且同时在github和码云进行备份。
4 |: m! B& v+ T; j- L% t- q  B' g6 t; _
N7{()2%}}ATUX_)RV%MSIMM.png
8 c( s" m5 A0 H+ d5 y

$ L2 C# ~5 l; v+ V/ g$ E4 j1 n- H8 A7 w! N- v, n5 o6 {* X5 S
收藏 评论0 发布时间:2021-12-18 17:42

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版