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

【经验分享】STM32_H7_GPIO

[复制链接]
STMCU小助手 发布时间:2021-12-18 17:42
声明:本篇博客并不是一个详细的教程,只是对本篇涉及到的知识点进行简单整理,罗列出其中疑难、易引起误解的地方。若想对该功能进行全方位的了解,建议直接去看手册。本篇博客分为功能介绍、cubemx界面介绍、hal库函数功能说明、例程Demo四部分。
1 D3 _$ [. s( b7 Z) n& w( Y
: i) n: R+ o; ^3 V, L7 qSTM32_H7_GPIO$ `* [6 W" P& F1 ~4 q% p

: P3 H$ E% |$ l4 W; F) E功能介绍! @! l  R  D3 O& h' L" [
-摘抄手册
) V: r, g/ x, p1 Y) v$ G' A0 G  w5 O. S+ |% g+ Y2 s  x( w
简介# V1 [, V0 G0 g8 H
每个通用 I/O 端口包括 :
8 ~; h; X2 A7 s) w9 ^: r& w0 u2 G4 s5 }/ e; [) e5 U) n& X
4 个 32 位配置寄存器 (GPIOx_MODER、 GPIOx_OTYPER、GPIOx_OSPEEDR 和 GPIOx_PUPDR)
: b8 G" O( X. z9 D2 个 32 位数据寄存器(GPIOx_IDR 和 GPIOx_ODR)7 J8 b- w* F/ I4 d, w% B: ]
1 个 32 位置位/复位寄存器 (GPIOx_BSRR)。
0 n# U- W, A( z! U) Y* Q  P* ]/ M5 n此外,所有 GPIO 都包括 :
2 ^" g7 A& f( ?" Y0 `  z% S2 H& x8 P  u$ _7 r
1 个 32 位锁定寄存器 (GPIOx_LCKR)' k! L, ~, D, X4 G, X
2 个 32 位复用功能选择寄存器(GPIOx_AFRH 和 GPIOx_AFRL)。
, v- ^4 \! E: _主要特性
3 w% K5 A, I( Y9 r1 _2 ~3 v  i$ [从 输出数据寄存器 (GPIOx_ODR) 或外设(复用功能输出)输出数据
* L* b6 }0 A) H将数据输入到 输入数据寄存器 (GPIOx_IDR) 或外设(复用功能输入)
' D$ ^# W5 C# N& U可为每个 I/O 选择不同的速度& m& k6 y7 Z5 Z( g  M9 A) w
置位和复位寄存器 (GPIOx_BSRR),对 GPIOx_ODR 具有按位写权限- S$ r: x  @( w2 f' s6 n2 [
锁定机制 (GPIOx_LCKR),可冻结 I/O 端口配置
7 B5 c0 |$ _" j8 p( k  ?2 N" y! W+ r快速翻转,每次翻转最快只需要两个时钟周期
+ J6 Y+ H) W3 m6 m# H/ h3 q引脚复用非常灵活,允许将 I/O 引脚用作 GPIO 或多种外设功能中的一种
& M7 h8 _& t' B9 ?& S% p可通过软件将通用 I/O (GPIO) 端口的各个端口 位分别配置为多种模式:
/ q7 N' n0 K9 `: m
8 O% c5 N+ P0 _, x9 eGPIO框图
% P- j$ C7 D& j
, Q: H' w) [5 Z( K5 @7 n" f. z( X" ` 20200312130916898.png
' v6 \8 T+ R: M( n* e& E4 w5 {0 j3 K  p& K6 @& i' b
框图说明:
, R5 [2 m1 z" y只需要对上图中的黄色框进行不同的配置,就可将通用 I/O (GPIO) 端口的各个端口位分别配置为多种模式:/ G# a; G0 r' C/ A" n$ F5 ]+ C

# `4 \) k- C! Y. _( u. O% `1 u9 d* t9 v输入浮空
) R0 h9 A4 J; D1 V* `输入上拉
7 ]- r" n7 r$ j6 a输入下拉
7 W( K/ l  ?% ^, B1 d模拟输入
2 m8 I0 Z( @' V9 C( J开漏输出
: _8 @5 N& d  M3 ~! ^% F推挽输出' ^% z& v! b3 g8 C5 G  b0 \  ~
复用功能推挽
# d; l! X4 Y' r复用功能开漏$ f4 w0 P3 I' s  a+ ]
具体如何配置,在手册(RM0433)第11.3.9、11.3.10、11.3.12、11.3.13小节里有详细的描述,这里不再展开说明。
9 i$ @0 I8 A& O% c, N: J. @5 @0 ?
' P+ u- [. D; S% b  c0 A补充描述4 r' T+ z- Q7 S2 E
上电复位后引脚状态:
+ A+ g% a+ m6 [0 V; q5 F
6 j" `! q) `$ E9 |7 s/ _$ ~在复位期间及复位刚刚完成后,大多数 I/O 端口被配置为输入浮空模式。但以下调试功能相关端口例外:& \8 L# l2 ]' f. }. P
1 [. @! \+ k; M. e1 Q
PA15:JTDI 处于上拉状态( ?* d" z$ ?; f+ ?( S9 w6 h
PA14:JTCK/SWCLK 处于下拉状态
6 n! ~# ?1 s2 g. f1 W; _5 QPA13:JTMS/SWDAT 处于上拉状态- N" S, L) |8 v9 L4 l, g& O% f
PB4:NJTRST 处于上拉状态
* O0 \( T; @" m, fPB3:JTDO 处于浮空状态7 v" D; R" j$ [
' e& P8 e0 q- i, Z, o6 ]2 M6 ^

0 Z$ ?* m; n, \# x0 l8 f. F输入数据寄存器每个 AHB 时钟周期对 I/O 引脚上的数据进行一次采样,在将IO配置为输出时,仍然可以通过输入数据寄存器读取IO电平
1 e! u6 ^* _# t
3 m" U  U. V# K9 ^! y1 PI/O 引脚复用功能复用器和映射' R6 B8 J- p, n" C

" q6 ~7 Y% U4 ]要在外设复用功能配置下使用 I/O,用户必须按照以下步骤操作:
, K+ d) o0 G( s
6 z. ]6 K8 n  v  E+ A' E( m; e在 GPIOx_AFRL 或 GPIOx_AFRH 寄存器中,将 I/O 连接到所需的 AFx。1 u) c. m! M6 a
通过 GPIOx_OTYPER、GPIOx_PUPDR 和 GPIOx_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度。
4 G, M+ K; D1 o5 J. c: F6 x在 GPIOx_MODER 寄存器中将所需 I/O 配置为复用功能。, v9 R- X* }2 q4 N6 q. x( K
对于 ADC 和 DAC等外设,请查阅手册后进行操作。
4 e4 C' @( C$ I; s; V! ~# _
. ?. Z4 I5 i8 m. p1 e& E. M- PGPIO寄存器
- ^" b3 Y: Z7 M7 Y, l8 a; q' P请查阅手册(RM0433)第11.4节。' H7 R7 r& u* u. `
0 |1 F2 w' Y1 Z2 e0 D/ X! b7 i
STM32CubeMX" o- H: c# i! C' ~$ \
STM32CubeMX关于GPIO的配置比较简单,截图说明如下(以输出模式为例):
" B1 J! ~$ ]. K+ q8 ?1 N/ g
. H0 E& u4 Q" e- {  `9 K1 O
20200228135621177.png

: i1 L: C7 B, M7 r: q$ Q3 X0 W+ |$ N! l0 p" V/ L

) F% }$ ~7 D* L( N) f7 N( xHAL/LL库函数功能说明( d/ I& e( u/ L& f; q( m* H
控制GPIO相关的HAL库函数不多,只有8个,列表如下:
: o5 \: k9 x; L) ?7 P
; {8 r3 M' M! l0 F2 n( N
`{Q(7G2EMBILGZMG9~2K_9F.png
# }5 O$ v/ a) T# u; D3 _
% r5 F- f# a* l% B7 o
详细功能去阅读库函数说明文档。例如:STM32H753xx_User_Manual.chm,可在官网下载。
" {% F$ k, Q3 l
8 C$ M+ O' W6 y; DDEMO
5 H# P$ z( m1 g1 `$ W所有DEMO均提供Keil和STM32CubeIDE两个版本,且同时在github和码云进行备份。6 m  f! u: _( Q8 O
  n5 w" v' F. c8 d3 k- \! z. }; T8 U( c
N7{()2%}}ATUX_)RV%MSIMM.png

0 I' N  V3 j" l: R, q
: |- ?9 @/ [; ^% x8 p
$ y9 ~" F9 S2 B4 J! i
收藏 评论0 发布时间:2021-12-18 17:42

举报

0个回答

所属标签

相似分享

官网相关资源

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