请选择 进入手机版 | 继续访问电脑版

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

【经验分享】STM32_H7_GPIO

[复制链接]
STMCU小助手 发布时间:2021-12-18 17:42
声明:本篇博客并不是一个详细的教程,只是对本篇涉及到的知识点进行简单整理,罗列出其中疑难、易引起误解的地方。若想对该功能进行全方位的了解,建议直接去看手册。本篇博客分为功能介绍、cubemx界面介绍、hal库函数功能说明、例程Demo四部分。
) I( Z0 S# D" A1 P* a7 v$ [& C" E( Y. n7 J" t# A; w
STM32_H7_GPIO' K- W  U  t+ A

6 z; b7 q' Z$ k" p  ^功能介绍! a7 z+ h1 ~& B! _1 U$ R" L2 }
-摘抄手册+ v  V% s- U4 y& U6 N& n8 e

* G0 P2 X3 Z4 U! I8 ?! C% T; r简介' I7 y  }. e7 ]/ s, v
每个通用 I/O 端口包括 :) a  k9 j; j' B! A8 |

2 \* Y0 m( g  D% o3 L4 个 32 位配置寄存器 (GPIOx_MODER、 GPIOx_OTYPER、GPIOx_OSPEEDR 和 GPIOx_PUPDR)
8 M6 W$ |0 ~8 `" K0 e! L2 个 32 位数据寄存器(GPIOx_IDR 和 GPIOx_ODR)
. K) H# B; Q) v) P5 W' d/ W1 个 32 位置位/复位寄存器 (GPIOx_BSRR)。% `" \3 ]6 H9 u( J$ s
此外,所有 GPIO 都包括 :
5 b  G1 `) J% g! i0 N% U: d
5 w& ]; O% J0 y4 X9 J1 个 32 位锁定寄存器 (GPIOx_LCKR)
% H' G3 B: b  P0 V1 }+ q0 j* l2 个 32 位复用功能选择寄存器(GPIOx_AFRH 和 GPIOx_AFRL)。
' Y7 z- D! ~) X2 Z主要特性
& C& h; g$ }1 o, E! u1 k: F从 输出数据寄存器 (GPIOx_ODR) 或外设(复用功能输出)输出数据
6 c# j2 w( D9 C) }. s- i, h8 ~( m将数据输入到 输入数据寄存器 (GPIOx_IDR) 或外设(复用功能输入): g4 k! O* [4 s6 e# Z; s# f
可为每个 I/O 选择不同的速度7 j1 C; K. j% U- R
置位和复位寄存器 (GPIOx_BSRR),对 GPIOx_ODR 具有按位写权限8 ~6 S' j& u% F$ i5 Y8 G
锁定机制 (GPIOx_LCKR),可冻结 I/O 端口配置7 _" J' U8 U8 \9 k; R
快速翻转,每次翻转最快只需要两个时钟周期
$ q% ~2 K% y5 [) ]+ B$ W2 s5 H引脚复用非常灵活,允许将 I/O 引脚用作 GPIO 或多种外设功能中的一种: I/ O5 |) _8 p) O% e% a
可通过软件将通用 I/O (GPIO) 端口的各个端口 位分别配置为多种模式:
+ q* L# {, l6 Q% t1 j! U
% Q0 J: V! @0 I4 @; EGPIO框图
9 T. ~6 {, y# W3 [4 R9 G: b. N, W% i0 O* S5 C
20200312130916898.png 2 @) G& ^) x+ l* g& P: d
8 j, E3 F/ V/ l* C/ o
框图说明:
& q/ a+ h& g% {; K只需要对上图中的黄色框进行不同的配置,就可将通用 I/O (GPIO) 端口的各个端口位分别配置为多种模式:
6 S8 m5 @5 R) j$ w
" z+ I7 H  _6 H输入浮空
& a" s; ?9 F0 o' U- w, t. _' J8 [输入上拉, V% P% S% U8 w
输入下拉
2 [& w# d# u, O# j, p! R模拟输入
" B/ M& U: u( I7 m. K* z/ K开漏输出; J, q) H$ y% e$ F0 l! z
推挽输出
' \3 }7 T: ^/ f复用功能推挽- b! i" a6 [! C8 _( T8 W
复用功能开漏( b2 X. Z" G& W9 W. s
具体如何配置,在手册(RM0433)第11.3.9、11.3.10、11.3.12、11.3.13小节里有详细的描述,这里不再展开说明。& b' Q5 o( {$ e* y% W: X9 L
- ~1 _4 k' h2 s
补充描述$ ?7 M, m; G) T& |' S1 }" c/ j  W  \
上电复位后引脚状态:& s' Z2 C- J$ |& g# G
! l# s% |" s3 B8 C7 F; T4 g) R6 n
在复位期间及复位刚刚完成后,大多数 I/O 端口被配置为输入浮空模式。但以下调试功能相关端口例外:
! \' j9 y; m5 [- b1 n* B
; h, \  M! M' n4 l0 jPA15:JTDI 处于上拉状态
% [# C7 @$ k% `4 P  TPA14:JTCK/SWCLK 处于下拉状态, G6 K7 b! Q# l/ [1 b. N
PA13:JTMS/SWDAT 处于上拉状态' I1 ^9 l7 J8 X. S
PB4:NJTRST 处于上拉状态8 `5 e( U, I8 C; y/ w, }) F
PB3:JTDO 处于浮空状态
, v" Z4 v+ a( A- G3 p+ |- |: i  P4 O: r
% Q  U; \# g3 x
输入数据寄存器每个 AHB 时钟周期对 I/O 引脚上的数据进行一次采样,在将IO配置为输出时,仍然可以通过输入数据寄存器读取IO电平
# j( p6 B+ r* G5 B$ y- Q0 [# j  b5 L+ Z& ?7 \# l  i4 M
I/O 引脚复用功能复用器和映射" ~6 m) p$ y* R* z5 T4 i) @" r. B
" I" u6 t$ ^2 g3 u7 }/ u2 F
要在外设复用功能配置下使用 I/O,用户必须按照以下步骤操作:
9 T  t: M% V4 \3 @7 f1 @7 |
! G8 [# {$ R9 m6 v; G; I, T( M* H6 I4 s在 GPIOx_AFRL 或 GPIOx_AFRH 寄存器中,将 I/O 连接到所需的 AFx。' A% a# M& a) L+ _8 r' ~( s
通过 GPIOx_OTYPER、GPIOx_PUPDR 和 GPIOx_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度。8 q0 k8 z  O; }- i; X1 R
在 GPIOx_MODER 寄存器中将所需 I/O 配置为复用功能。* e, f: G! g. h$ U3 A7 a4 B$ x
对于 ADC 和 DAC等外设,请查阅手册后进行操作。
+ |! x7 e0 {* t: ?7 o% w! O6 r
" r& t& n: _6 P8 W( z0 _" b9 zGPIO寄存器  I8 e6 t2 t9 u* v; ~
请查阅手册(RM0433)第11.4节。
5 J: f. @+ e8 ?4 S& Y/ [8 Q# K( d- Y$ a! u  O1 P; _& ~
STM32CubeMX7 @# o4 F+ J/ u8 l0 B; ?, A
STM32CubeMX关于GPIO的配置比较简单,截图说明如下(以输出模式为例):
: D5 d; }0 i: Q8 a) n; g9 h, O- }% u" ?( K
20200228135621177.png
9 c; T( j6 Z  x  o

" M* s4 C7 r, n7 \2 e" I' d+ B' u+ B( P' w
HAL/LL库函数功能说明
* g" m, _6 s5 ]: x1 a4 @控制GPIO相关的HAL库函数不多,只有8个,列表如下:0 S  j5 y2 d! S1 h
$ H5 _3 s- P7 i3 L# u9 |2 |
`{Q(7G2EMBILGZMG9~2K_9F.png
/ z. ^2 n$ ~2 J
: s4 D5 c6 D: E* {
详细功能去阅读库函数说明文档。例如:STM32H753xx_User_Manual.chm,可在官网下载。$ n4 Y* I( S) L$ E# e; c# x- d2 L! z

* g( C8 W3 U' \( D, i: o, `DEMO2 G0 {  M9 O' V; g% ^% z1 u; @
所有DEMO均提供Keil和STM32CubeIDE两个版本,且同时在github和码云进行备份。: n. \+ g3 d9 F3 {# X+ M0 E

2 V6 e6 H4 E8 @7 D% ]4 S7 S  q
N7{()2%}}ATUX_)RV%MSIMM.png

. d; X2 q) j; |, o) K$ O
: w$ k; O! r1 Y. S5 n
& x' a* x* F+ H2 M  |
收藏 评论0 发布时间:2021-12-18 17:42

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版