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

【经验分享】STM32_H7_GPIO

[复制链接]
STMCU小助手 发布时间:2021-12-18 17:42
声明:本篇博客并不是一个详细的教程,只是对本篇涉及到的知识点进行简单整理,罗列出其中疑难、易引起误解的地方。若想对该功能进行全方位的了解,建议直接去看手册。本篇博客分为功能介绍、cubemx界面介绍、hal库函数功能说明、例程Demo四部分。
7 R7 A$ r; }; ]  K% c; D& _
* x8 \! {) Y8 S4 n8 S% DSTM32_H7_GPIO
& w5 r& \' a2 R& t4 `% i- f: S# Q$ l5 N/ z% n
功能介绍
% [3 x; p! ^; R1 f8 w& N-摘抄手册- a( I7 n. J1 A
" l' Q$ B  j( j' Z: P
简介! e! B3 s# O0 P. Z" ?( T+ I, _2 _1 k
每个通用 I/O 端口包括 :3 i+ o& E5 u5 \& F
+ e3 m( K1 b0 o* m2 ]% H. e2 e
4 个 32 位配置寄存器 (GPIOx_MODER、 GPIOx_OTYPER、GPIOx_OSPEEDR 和 GPIOx_PUPDR)- |, |9 s* G, ~8 ^( x
2 个 32 位数据寄存器(GPIOx_IDR 和 GPIOx_ODR)" O5 e- z3 w+ m' E, T3 N
1 个 32 位置位/复位寄存器 (GPIOx_BSRR)。
! B. d9 b4 `0 ]此外,所有 GPIO 都包括 :
- ^6 J) m; g7 K0 `( l: |
& r: ]' \/ d/ Z8 p( @1 个 32 位锁定寄存器 (GPIOx_LCKR)& b4 F5 c# M2 V4 p
2 个 32 位复用功能选择寄存器(GPIOx_AFRH 和 GPIOx_AFRL)。2 b! v. `0 ]; _# Q+ S* H( y4 h) R
主要特性$ j1 L2 _1 o- ?2 A- s  f
从 输出数据寄存器 (GPIOx_ODR) 或外设(复用功能输出)输出数据1 C. Z) R2 }# ~% w* r) o9 }
将数据输入到 输入数据寄存器 (GPIOx_IDR) 或外设(复用功能输入)
/ ?- B- {2 R: P& V; a9 Z# o可为每个 I/O 选择不同的速度+ _& q( ?) u0 m" |+ Z6 O
置位和复位寄存器 (GPIOx_BSRR),对 GPIOx_ODR 具有按位写权限6 v/ E7 W% N0 n; z8 W/ `, T5 k
锁定机制 (GPIOx_LCKR),可冻结 I/O 端口配置, O9 c8 j9 ]$ b6 q
快速翻转,每次翻转最快只需要两个时钟周期
2 ^  ^5 j. t2 \, f引脚复用非常灵活,允许将 I/O 引脚用作 GPIO 或多种外设功能中的一种2 Y9 y. c6 C% d# K; N( {
可通过软件将通用 I/O (GPIO) 端口的各个端口 位分别配置为多种模式:
2 K) c3 j- F, P" j! \( E5 ^$ a' r5 C) z) n) ~, |% U" s/ z/ n& h# P' B
GPIO框图
3 Z- m8 a$ j* q: r. v3 t  p: E# X4 W  z. K: L+ i* _
20200312130916898.png
( k9 W$ K- C8 v) v6 M4 q: c& ?
9 V* @: w* E  Q  [  N$ Y框图说明:
$ z5 u1 S* ?( E8 t9 O  ?& T只需要对上图中的黄色框进行不同的配置,就可将通用 I/O (GPIO) 端口的各个端口位分别配置为多种模式:
5 j* ]* |6 F7 M: `# l
& W1 C3 o. s" I输入浮空
) P" g7 S( |  s9 f% K输入上拉
0 u2 k% V* v" R! h0 V( Z输入下拉
$ [. |$ g/ L, `& W& A模拟输入0 Q/ X' S& m8 M' C' l* J
开漏输出
* W& k" R- e8 D, r推挽输出
9 O3 g! r+ c# w0 i' a8 W- v/ M0 n复用功能推挽3 M+ J7 T4 F. @$ J, [( Q; u5 ^) Z
复用功能开漏& a& M. j! a. V2 G
具体如何配置,在手册(RM0433)第11.3.9、11.3.10、11.3.12、11.3.13小节里有详细的描述,这里不再展开说明。/ \2 h" |$ @. J: t. b: Q* R$ l8 d* U

. D, a; e" e! }6 R补充描述$ Y0 v- K' o8 a8 F$ J% ^
上电复位后引脚状态:6 k  v/ ~, u4 E3 v

9 K+ z# z& y/ f$ P# t% P: e2 V在复位期间及复位刚刚完成后,大多数 I/O 端口被配置为输入浮空模式。但以下调试功能相关端口例外:; c# ~1 V( L8 P7 l
$ N6 ]$ s+ ?  J( _- B
PA15:JTDI 处于上拉状态; u+ m$ m' F+ S
PA14:JTCK/SWCLK 处于下拉状态
- k5 k' t4 c1 V" q* A- p2 zPA13:JTMS/SWDAT 处于上拉状态% b0 A) m5 d! O4 I+ [9 A
PB4:NJTRST 处于上拉状态
  i7 g$ k0 W1 e. H" P& e0 n+ ?PB3:JTDO 处于浮空状态! K! `/ W" N: q

) u6 H: a1 K5 V  ?' V3 N! n: b2 \
& }: d8 w  Y  T输入数据寄存器每个 AHB 时钟周期对 I/O 引脚上的数据进行一次采样,在将IO配置为输出时,仍然可以通过输入数据寄存器读取IO电平
, l" x, N" ]. K, K/ E2 ^
" n  L! T# ?. J4 R" V/ f. FI/O 引脚复用功能复用器和映射
' m; D! \3 u5 o: B5 |8 ~
6 y$ X. a' G. F5 l" T7 q! X要在外设复用功能配置下使用 I/O,用户必须按照以下步骤操作:
$ D" |& F+ w8 q9 B! ?# P$ I1 ]/ J* F6 [3 `8 h! A. Y
在 GPIOx_AFRL 或 GPIOx_AFRH 寄存器中,将 I/O 连接到所需的 AFx。, C( T. k3 E: v+ u
通过 GPIOx_OTYPER、GPIOx_PUPDR 和 GPIOx_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度。
8 Z& z. T) U: `( r7 `) N# O! O在 GPIOx_MODER 寄存器中将所需 I/O 配置为复用功能。  x2 p+ C% O$ V6 S
对于 ADC 和 DAC等外设,请查阅手册后进行操作。6 z8 I/ v1 m4 Y  m4 l0 ]+ J, |

3 |+ n/ D0 o5 C/ IGPIO寄存器
/ m2 y" B3 t- X0 a+ I4 P- v请查阅手册(RM0433)第11.4节。
" L) {/ j0 w# }' y7 z/ o$ L4 b+ v2 Z% ^, _: U# j7 U
STM32CubeMX9 V4 V, V% q1 G9 r; X9 G0 o6 M6 B
STM32CubeMX关于GPIO的配置比较简单,截图说明如下(以输出模式为例):
) y  X  k& r$ d' x2 F: o. G7 W3 b& F! U5 f. D( A( D$ V  k8 V
20200228135621177.png

6 Y4 |( f4 s9 y3 n' m. q! C+ f  \
! [8 D( T! B0 m8 l
3 u# P/ O* d& C. g5 ZHAL/LL库函数功能说明
+ c' q( A) E! Y" q' c4 }' K% \控制GPIO相关的HAL库函数不多,只有8个,列表如下:. X9 W3 |& d/ I2 U

& W5 W1 F  L0 t9 a
`{Q(7G2EMBILGZMG9~2K_9F.png

. n% |6 \" d7 p( u, n5 r' K
, V$ \! G) g- ?9 k3 P5 |详细功能去阅读库函数说明文档。例如:STM32H753xx_User_Manual.chm,可在官网下载。1 L6 F$ p! F) a. a

5 H/ P, q4 v3 F6 zDEMO
+ ~2 Y" s/ f) r, f2 e: M% _- {所有DEMO均提供Keil和STM32CubeIDE两个版本,且同时在github和码云进行备份。5 Z, X0 ~* ?- z! J3 }" j: f
6 G+ k/ e0 G$ u0 C. `! P
N7{()2%}}ATUX_)RV%MSIMM.png

* g& g% ^4 Y; H. s  r( ^$ v: ?0 f5 D+ i) S9 ?: T. p  u
) ]  I" E3 `( O/ q  [
赞 收藏 评论0 发布时间:2021-12-18 17:42

举报

0个回答

所属标签

相似技术帖

官网相关资源

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