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

【经验分享】STM32_H7_GPIO

[复制链接]
STMCU小助手 发布时间:2021-12-18 17:42
声明:本篇博客并不是一个详细的教程,只是对本篇涉及到的知识点进行简单整理,罗列出其中疑难、易引起误解的地方。若想对该功能进行全方位的了解,建议直接去看手册。本篇博客分为功能介绍、cubemx界面介绍、hal库函数功能说明、例程Demo四部分。
  q# A) `7 y6 l+ y+ S& a5 H' I: Y& A5 k' U; @8 ^
STM32_H7_GPIO; s( k5 p& T) ~, H/ R

0 b# Q- C  ^. `. _功能介绍0 T7 o: x; H+ @
-摘抄手册2 G2 H: w2 C- C4 s1 W" J
' P/ F2 w. f0 C: C
简介
1 R8 @% o  b% o1 f0 j1 d, i每个通用 I/O 端口包括 :1 o# @6 ~3 j" `  L: d2 H. @
7 b3 B. M# e% Z! }% I
4 个 32 位配置寄存器 (GPIOx_MODER、 GPIOx_OTYPER、GPIOx_OSPEEDR 和 GPIOx_PUPDR)
  K% G- ?; ]: W2 个 32 位数据寄存器(GPIOx_IDR 和 GPIOx_ODR)- q; b5 u" V, z; u9 B4 c
1 个 32 位置位/复位寄存器 (GPIOx_BSRR)。. u) N' q/ ^  Q- ~
此外,所有 GPIO 都包括 :# W; ^0 G! P9 E) F2 D. L. x
+ I2 x$ ?* F0 J4 J, E
1 个 32 位锁定寄存器 (GPIOx_LCKR)) m' ^; P3 O3 A- ^) d
2 个 32 位复用功能选择寄存器(GPIOx_AFRH 和 GPIOx_AFRL)。: C$ m7 ]7 W  d2 i
主要特性) W' D* x: a5 Y; M
从 输出数据寄存器 (GPIOx_ODR) 或外设(复用功能输出)输出数据
9 m3 H5 v, ^1 a' }$ Z6 |将数据输入到 输入数据寄存器 (GPIOx_IDR) 或外设(复用功能输入)1 w0 {! H  x+ B$ |8 E
可为每个 I/O 选择不同的速度
& t3 Q: p9 }; g) x置位和复位寄存器 (GPIOx_BSRR),对 GPIOx_ODR 具有按位写权限% V/ V! X! d3 I, c$ U$ ]4 V) r+ o1 l
锁定机制 (GPIOx_LCKR),可冻结 I/O 端口配置
$ m+ \7 ~' t2 \0 w快速翻转,每次翻转最快只需要两个时钟周期
1 B) Q  a0 A, i% G7 H* h1 `引脚复用非常灵活,允许将 I/O 引脚用作 GPIO 或多种外设功能中的一种
: b6 G. W1 G7 z可通过软件将通用 I/O (GPIO) 端口的各个端口 位分别配置为多种模式:- l3 F$ X% Y4 c$ Y- m7 E7 e0 Z
3 L7 x) K8 _! o2 u
GPIO框图
, [0 P: Y& V! v9 U! T# Y2 V
7 l9 n) _1 r% t 20200312130916898.png
& r( w# I* P% I" v3 U  f$ x  Y' o( F& d  A8 w* {0 q
框图说明:
6 r6 X7 B! `0 ~只需要对上图中的黄色框进行不同的配置,就可将通用 I/O (GPIO) 端口的各个端口位分别配置为多种模式:  _  q* b' o3 ]( g4 R+ Q

9 i  \+ S/ M8 ?. `输入浮空
9 C0 d) l8 T5 ~+ {/ ?输入上拉: o7 U' b; e  \$ _/ l' t8 o
输入下拉
  \# A8 q0 y/ j* R+ o9 }模拟输入
  o5 F" m# h, w& i' T开漏输出
" H& H2 R& _) m' J! p# o6 Y6 w* S推挽输出
2 C/ S; E; B+ A4 P- y. k9 {8 R复用功能推挽
; x2 J, |- h( J2 H2 y: ?复用功能开漏5 V) c; {" i# z7 s9 q2 v7 T
具体如何配置,在手册(RM0433)第11.3.9、11.3.10、11.3.12、11.3.13小节里有详细的描述,这里不再展开说明。! N7 K: u9 X/ W
. a2 O" a0 E' b6 b
补充描述
! s9 k* V/ a" N# N7 j) {* ^上电复位后引脚状态:
$ f" G3 j8 z: W3 b" G+ S8 l
) y$ V) g% e3 ^0 g% Z& j( B6 q在复位期间及复位刚刚完成后,大多数 I/O 端口被配置为输入浮空模式。但以下调试功能相关端口例外:, `" X* M/ V) z- w! L
/ j9 g& C9 p; m7 m
PA15:JTDI 处于上拉状态! Y. m7 @# Y& J
PA14:JTCK/SWCLK 处于下拉状态
  O) L; x6 l; h" m% z% @9 c- XPA13:JTMS/SWDAT 处于上拉状态9 P" x$ R8 L3 }+ K- n. q4 K
PB4:NJTRST 处于上拉状态/ v$ s. E' ^7 D! k! B
PB3:JTDO 处于浮空状态' r4 [9 q( W  |0 r' Z: R
: [6 }) n+ l% U! U3 r3 ^( N
/ ]4 O9 V1 z* E/ A% N+ b. w
输入数据寄存器每个 AHB 时钟周期对 I/O 引脚上的数据进行一次采样,在将IO配置为输出时,仍然可以通过输入数据寄存器读取IO电平
7 {& i! G, p. R2 \
% T/ B. m5 d+ X  {I/O 引脚复用功能复用器和映射
0 N9 u+ U- V2 E0 |) Q+ R3 f9 t, a- Z& V) C$ Z7 W- r
要在外设复用功能配置下使用 I/O,用户必须按照以下步骤操作:  o. r* q+ x2 P' y
: p' p6 `0 I& f) |' W: y
在 GPIOx_AFRL 或 GPIOx_AFRH 寄存器中,将 I/O 连接到所需的 AFx。- H; N2 t8 X; w8 L, k9 g, Z1 ?
通过 GPIOx_OTYPER、GPIOx_PUPDR 和 GPIOx_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度。- R3 [# s/ t8 s* `& M/ Y
在 GPIOx_MODER 寄存器中将所需 I/O 配置为复用功能。6 ?. ^* B5 a# |7 Y) U! x* p
对于 ADC 和 DAC等外设,请查阅手册后进行操作。# v0 e/ P% q" ~/ A

' y, j6 X$ y. p  d- I1 H# H/ W) x0 k  [GPIO寄存器
! R% k- F% n* c% O1 y请查阅手册(RM0433)第11.4节。! K) ~. j5 m4 n$ q8 W. |; D
! _8 y) P0 H; |) l. |% U5 Q6 A2 }
STM32CubeMX
. U- f3 O6 Z# o8 g' fSTM32CubeMX关于GPIO的配置比较简单,截图说明如下(以输出模式为例):2 O6 z# L# S% W0 u

- l' ^% b/ u5 e5 V2 u  j; ?' r
20200228135621177.png
* [0 j  S% _# T8 Q

! P4 r3 g9 J2 J  W0 L/ B$ ?# ~6 W$ l/ j: S& m
HAL/LL库函数功能说明, e# P% }# ?* T, Q' j" y& j( x
控制GPIO相关的HAL库函数不多,只有8个,列表如下:1 [3 Y1 E- P, W/ [4 y6 g
% k6 \8 F$ Z1 e( Q1 I# @2 ^
`{Q(7G2EMBILGZMG9~2K_9F.png
# X7 R8 b: U) I! {8 x- g) z

: H& h1 n' Y2 U3 e9 U, r详细功能去阅读库函数说明文档。例如:STM32H753xx_User_Manual.chm,可在官网下载。/ e( m2 d: w9 A5 E; c& {
+ n/ `6 N, i( |( w$ M
DEMO0 E; F! ]9 {% y! C2 x) `3 t
所有DEMO均提供Keil和STM32CubeIDE两个版本,且同时在github和码云进行备份。5 X% t  K3 ^) N4 N
! g( A- C/ B  j- I# y7 D; [/ H  E& G
N7{()2%}}ATUX_)RV%MSIMM.png
; e' H7 z3 |4 E" I
( I2 E- f' ]4 n/ `
7 V$ B9 i% \, I8 l& X( e/ s- n
赞 收藏 评论0 发布时间:2021-12-18 17:42

举报

0个回答

所属标签

相似技术帖

官网相关资源

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