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

【经验分享】STM32_H7_GPIO

[复制链接]
STMCU小助手 发布时间:2021-12-18 17:42
声明:本篇博客并不是一个详细的教程,只是对本篇涉及到的知识点进行简单整理,罗列出其中疑难、易引起误解的地方。若想对该功能进行全方位的了解,建议直接去看手册。本篇博客分为功能介绍、cubemx界面介绍、hal库函数功能说明、例程Demo四部分。
  X$ t0 q  u6 V7 Z- |! I! f- z/ q2 v6 l7 _; v1 n1 Q) L3 N
STM32_H7_GPIO1 D  T0 Q/ x. K
5 a0 ?, s$ g8 ~0 @8 e5 ?3 X
功能介绍
$ C" m2 w+ ^: W6 X$ Z-摘抄手册8 o* }  c' {% `8 F: z; z; }

5 H4 x  K2 |3 w- O简介% J, C7 R6 {3 l+ [0 W
每个通用 I/O 端口包括 :* _5 ?: K1 L+ {* g( @$ t  Q

, C& ]* h) Z% w1 B2 O4 个 32 位配置寄存器 (GPIOx_MODER、 GPIOx_OTYPER、GPIOx_OSPEEDR 和 GPIOx_PUPDR)4 y; `! q* S$ s: Z; A
2 个 32 位数据寄存器(GPIOx_IDR 和 GPIOx_ODR)2 R* R! l- g+ Y  Y
1 个 32 位置位/复位寄存器 (GPIOx_BSRR)。; [0 _" n1 C1 ]9 H; z" l+ ^
此外,所有 GPIO 都包括 :
" Z5 w6 M" A6 Z0 x2 s/ t+ g  Y* N' v5 O) k
1 个 32 位锁定寄存器 (GPIOx_LCKR)7 S- N' V/ D" P: \+ p2 P) @" g  m
2 个 32 位复用功能选择寄存器(GPIOx_AFRH 和 GPIOx_AFRL)。9 F5 [( {  T0 H* K1 p& T
主要特性
- w- Z4 _* i% o3 v从 输出数据寄存器 (GPIOx_ODR) 或外设(复用功能输出)输出数据
% ?( @; G7 H) y! F将数据输入到 输入数据寄存器 (GPIOx_IDR) 或外设(复用功能输入)
) e3 |& n: w# `9 x可为每个 I/O 选择不同的速度( i2 f+ }: _" O! s
置位和复位寄存器 (GPIOx_BSRR),对 GPIOx_ODR 具有按位写权限1 l# E  N2 H' N7 n1 F  {
锁定机制 (GPIOx_LCKR),可冻结 I/O 端口配置
- ~0 }* e4 O+ L/ ]# r3 @, |快速翻转,每次翻转最快只需要两个时钟周期
; V: @$ n5 \5 {3 W+ R引脚复用非常灵活,允许将 I/O 引脚用作 GPIO 或多种外设功能中的一种
9 A0 P: a; v* z3 y2 q3 Q1 k8 O可通过软件将通用 I/O (GPIO) 端口的各个端口 位分别配置为多种模式:
# y3 s2 D% X! m5 N3 k4 p6 d0 f3 X4 k9 l6 a# @7 A  O7 I$ E- t
GPIO框图
+ y3 @7 p4 u7 V$ o, s* T1 g# K1 k
20200312130916898.png ( e* r+ ~$ t- p5 H! K* W

. S) L# u, W$ D8 J  Z框图说明:/ g( P$ t" S9 X. J$ R# U. u$ H
只需要对上图中的黄色框进行不同的配置,就可将通用 I/O (GPIO) 端口的各个端口位分别配置为多种模式:
4 C2 z" y; r9 j
$ k4 D% j/ D, B; p8 V. x% h: s输入浮空
. D2 C* w: m- P2 {- b# n, s输入上拉
' l- v5 F& V$ f5 A6 U% R输入下拉2 ?# T7 w5 Y% W/ \8 N3 m
模拟输入
* E. d" [. L; F+ T( S) d开漏输出
# P" [8 ~6 H$ V8 w+ r8 Q# r推挽输出
, u' s0 }, N" E1 W复用功能推挽4 P- ]( |% ^  a
复用功能开漏
4 Z+ }# P9 a1 P, N' h$ h2 O  v具体如何配置,在手册(RM0433)第11.3.9、11.3.10、11.3.12、11.3.13小节里有详细的描述,这里不再展开说明。
0 }- O, ?; y. B) ^5 Y
2 |6 b, w! Q& v+ F  L补充描述
' J1 F8 C. b/ d  z) P+ ?3 v9 D上电复位后引脚状态:
) v, O- t! G8 o" |
8 z1 Z# U0 X9 I' v; C在复位期间及复位刚刚完成后,大多数 I/O 端口被配置为输入浮空模式。但以下调试功能相关端口例外:0 h; O: r  O/ z# u
" _' i1 v: G: N7 A4 e
PA15:JTDI 处于上拉状态
5 \0 S& ?' a' V% E, |: N$ v. NPA14:JTCK/SWCLK 处于下拉状态
# L# L' h6 F0 tPA13:JTMS/SWDAT 处于上拉状态1 ]+ D) h, w% x( I9 u) a" N
PB4:NJTRST 处于上拉状态
# u, K( g0 S+ {5 X; F9 p- aPB3:JTDO 处于浮空状态
. }/ A4 ~8 t: N+ K8 k7 T. q
# [# `% `. l" t$ }
% ]: T% a% w8 U  ~& c输入数据寄存器每个 AHB 时钟周期对 I/O 引脚上的数据进行一次采样,在将IO配置为输出时,仍然可以通过输入数据寄存器读取IO电平. n4 F2 e+ N& f3 Q* c% O
7 d7 B  R' Y! |" ?. X# x5 |
I/O 引脚复用功能复用器和映射/ s! m- _0 {) s! v  w: y
/ o( E$ @* r' Z3 n0 l# U
要在外设复用功能配置下使用 I/O,用户必须按照以下步骤操作:! r- N$ H1 L7 {$ x

5 L7 a  u  m5 k5 U* \; \) C% H在 GPIOx_AFRL 或 GPIOx_AFRH 寄存器中,将 I/O 连接到所需的 AFx。6 {# h9 U& ]! w) z, P9 j
通过 GPIOx_OTYPER、GPIOx_PUPDR 和 GPIOx_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度。
6 k! q5 _; i; c5 Y9 W在 GPIOx_MODER 寄存器中将所需 I/O 配置为复用功能。; `% a! a" i* C% J9 S  u
对于 ADC 和 DAC等外设,请查阅手册后进行操作。
  t; [3 T) k# N, O' p1 S  |9 W; g& i, [8 |  b3 w+ Q8 f
GPIO寄存器
; Z, I; i5 l: \请查阅手册(RM0433)第11.4节。
/ x: R2 E% H' [3 ^) M: O7 ]$ ]: s9 o- k
STM32CubeMX( _2 v' a5 }. n3 v4 W6 G
STM32CubeMX关于GPIO的配置比较简单,截图说明如下(以输出模式为例):
# L8 y6 {, k: z1 p( u9 m5 N5 i* n% D1 q+ z$ p
20200228135621177.png
& X  M8 }* _7 t- W4 k! R- C8 I
: a1 X6 c/ b1 S* i) c* c; A

3 z! ~7 r" ?- C2 D* |4 UHAL/LL库函数功能说明: M3 x; G8 I9 X2 G
控制GPIO相关的HAL库函数不多,只有8个,列表如下:6 R1 X; T1 D* I  W) G% ]7 h( L$ v

; p. ^3 Y4 c) d- @+ }, a2 v- h
`{Q(7G2EMBILGZMG9~2K_9F.png

7 C  z) F6 Q8 w0 P
/ z5 h9 ?2 b4 r, m  B4 j( R详细功能去阅读库函数说明文档。例如:STM32H753xx_User_Manual.chm,可在官网下载。
- F; H+ R+ S$ K6 }$ R2 s5 p1 n5 r" d4 F; w3 l2 a
DEMO
" B, @! D  Y- x/ Q所有DEMO均提供Keil和STM32CubeIDE两个版本,且同时在github和码云进行备份。
! J; p5 V( \+ ]1 Q# S% T/ H# |7 v. y% p7 ~* O6 }% }+ t# h2 R5 ?
N7{()2%}}ATUX_)RV%MSIMM.png

8 U) Y; T* r; X2 L! ?& S* x4 C8 e* C7 h& c* w2 M

; m" h% c& ?: c, w, c
收藏 评论0 发布时间:2021-12-18 17:42

举报

0个回答

所属标签

相似技术帖

官网相关资源

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