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

STM32F103RCT6的GPIO

[复制链接]
STMCU小助手 发布时间:2022-12-27 18:00
概述7 h6 q* n0 L, y2 V
STM32F103RCT6
: N& Q1 o2 x; K6 x9 E% S( P共4组IO口1 z) z9 y( l+ t' p! p3 t
16*3+3 = 51个IO口
/ {7 ^: p6 b: W- m* J4 s% IGPIOA0 ~ A15
3 n/ ^  r5 F3 y) WGPIOB0 ~ B15
8 t7 m2 j: y3 W) p  KGPIOC0 ~ C15
0 U: G8 |8 v: [7 YGPIOD0 ~ D2
/ H: z( H4 X/ s* I) v
' f" O! K- [( q: I/ c
IO口的基本结构7 M$ J; A$ ~& N6 s) K8 k

; j$ x8 ~# D  U0 R4 n
810b7f2981034ef6ac2416f323d6577f.png & \/ F$ b% c  u( \% e9 J! Z) h
. v, o9 F" \( h  x" S
4种输入模式
7 E0 h% }  t  [/ k- ~5 y输入浮空/ T' P. b& y4 s1 N$ ?. v" ]
4 ]; [4 w, E% a! u' D" B( ^" n
0b0977b0d75f42519c682f38b0c7f6b4.png
9 {" E* G, {1 V$ t( e/ z0 S3 b" {6 T/ Y' b3 M
输入上拉
( k1 K; f8 a# J$ B6 [上图中上面打叉的部分开关闭合,上拉电阻约为30至50k* M6 L6 K+ t2 h6 h# t$ }
. Q  |7 M, ?' c6 q% G, O

+ M6 e& w( {8 {1 ^+ v: p输入下拉$ P. }/ b3 t# L! i
与上类似* I" s: Y1 R) A) G1 ]
/ x# W1 U% ?2 [+ d: X9 Q

- p9 T$ m- g0 l% W模拟输入
+ l! L% e( A6 _4 P+ Q- q6 \
9 F, Z: \5 F% p$ z3 H8 b: H. z

( ~8 A3 E& y, W1 A/ P+ ^ 26535fc9e2814437900b8bd86179fbb8.png ' T7 Q0 K, \3 U; s2 ?/ V4 j- c

* F8 P+ r" v5 u- k4 m
4种输出模式
8 m$ y; ~, s4 e9 e开漏输出
, Q! H) J( N% M. u6 p
4 s; ]! w9 q3 H% E
7a2742323b2a41f498688fb06f4bca64.png ; U& z9 L# O3 M5 O5 P: i  w9 U$ ]

2 |% \1 y( z9 E! M  y开漏复用功能# I+ r) V# b* J& C4 H( V8 G
; m8 \2 ^* ?7 @
9259486e967d4ec4a1322b93e0b352f2.png 4 _3 j; m. Y, t: {( ^' k2 f
9 T" A  N2 w8 y+ z
推挽式输出0 i! c0 b& m* D
推挽式复用功能7 E! `0 O" f* K4 R4 |! h# a
8 y% P' u6 Y9 W  x8 m3 L; @$ o
3种最大翻转速度
* ~+ \1 f( z# u' A3 o* h8 j2MHz& x' y% a' J7 w* Q+ }
10MHz$ @, D; n5 @: L; B# X! Y
50MHz, g: q' u, y6 A7 B9 O
- a8 s: L* m1 H* b7 m  \5 E
每组IO口包括的寄存器! a# Y4 C% G- j
两个32位配置寄存器,GPIOx_CRL  GPIOx_CRH
* d5 x% m6 H9 @" ?  A4 F两个32位数据寄存器,GPIOx_IDR   GPIOx_ODR& \$ ^# \, d7 b. s, {0 U- r
一个32位置位/复位寄存器,GPIOx_BSRR) v9 |# g; \* A1 l" B
一个16位复位寄存器,GPIOx_BRR
: G! |% |! Z2 P% r. s. X一个32位锁存寄存器,GPIOx_LCKR
9 R5 K# t+ p: {9 x. }$ q, a每个IO端口位允许自由编程,然后IO端口寄存器必须按32位字进行访问,不允许字节访问: @9 C8 i, y$ z: O
& H' R0 {- E3 l# Q9 Z; j% z8 O
对于一组IO口,每个IO口的配置需要寄存器的4位,每组一共16个IO口,因此需要寄存器的64位,由于STM32是32位的,所以分成了2个寄存器去配置# q4 A/ ~8 ^9 c( r

: @$ g$ ~" |9 p1 I- E' NGPIOx_CRLA0~PA7
/ Q$ a) A# E0 d+ H+ {* r) I1 y0 H6 \* M+ j$ N% C
GPIOx_CRHA8~PA15% ^! O* o0 b5 \
4 A- y/ K0 b# M$ {
每个IO口的配置需要寄存器的4位,其中2位是模式位MODE,2位是配置位CNF: j  s$ n; c# _1 x, F
- [) B; Q% N! j; |% i2 s
$ l2 H; Y" D/ P+ ~& V
输入数据寄存器/ A6 Y% k* a: P

1 h9 W$ d" u$ K1 S8 s7 ^6 |" }GPIOA_IDR分别对应每一位,即GPIOx_IDR0对应PA0
/ A4 X2 \# {. @( V, v* |, p  `3 o8 V) u' r  S) k
+ E1 O; i  w( H, b" p
输出数据寄存器5 Y# O& F7 b% M0 K! R& }

+ n7 \. x$ j: ^* i2 Q( ]/ tGPIOA_ODR与上类似  C( _  |5 _2 W5 @+ z' f

/ |! ^) t$ |, V: A' n) B

, t3 o6 l! ]4 f, t+ z: @GPIOx_BSRR置位寄存器
2 l/ l5 q% M) q+ b) k7 z* K" |2 ?8 S/ D6 _1 Y
其实就是控制下图红框中的部分
/ N' s4 A; L1 u4 e
/ H5 M* p5 _/ }! h
13d9956e72ac4a69afe58b9ae94fdd13.png
4 D3 L7 S9 l) n( Z# M  T8 U* E8 I. M$ L+ Y1 N
例如,我要操作某一位,使其置1,则只需要将这一位置1,其他位置0即可,与ODR寄存器不同的是,ODR寄存器给1就是1,给0就是0,BSRR给1就是1,给0不修改8 `  S, v& N4 |6 i' w; S

; R* k9 X% t. W2 {4 [通常只使用BSRR的低16位' _& S/ D) a: p$ p

$ N) h: x. Q$ H
# l" ]/ V9 t0 U% X2 o
GPIOx_BRR置位寄存器! }/ e9 m, R; S
; f! A( n+ z$ h* d* ~0 I# s  f
类似
: H7 V5 L) g4 P  X. k1 I
* b& \" j! u6 T: P+ A9 E, P
通常只使用BRR的低16位/ `" B1 ?# o7 V; h! t' @; |6 g5 f

9 w! n: Q; x) ~' C9 F端口复用
2 n* U- N, i, p8 u, v  T6 q相当于是一个开关+ ?; T* W6 j' p& H8 k+ D2 [0 G8 f1 z( ~

6 G. S  t' c+ d: P7 b; y/ J2 J端口重映射
  @; h5 G0 v! \( _方便布线,参考Datasheet里的Remap7 J2 Y5 m: G* j6 t
) P1 k; a) X5 a2 {, c' Y
STM32的所有IO口都可以作为中断输入8 O. a" D6 F8 D" d
$ t# Q4 n5 X) L6 h- `* G
6 t% b- e2 P8 ~; E
GPIO查看MODE、PIN、SPEED的可选项
1 K' N! j- U) `* F1 @
1 M3 ~% A6 x& x( l" K- R3 x
41452408137c4ae8b49db5fce8919071.png
, b2 ^% d: K8 L% ^8 |* u( d" Z% M0 {2 R  @
5a3a76518bb14b509b0ce119a2a434c2.png : V4 @! Z. W5 v6 w  O
1 ], ^3 _* r. ~9 x
类似地,查看PIN
# o9 o  \6 L% Q. k' Q9 b2 U% ]0 K* M8 k9 L( |! D5 s
d1cf61528ef44bc9b8ccfadc770f029d.png 9 R3 i9 j- V7 p8 I; V
3 p* P( D0 w. X7 ~- z
查看SPEED6 D8 h9 l5 M1 k+ E% {2 f& S) q8 f) k: T
7 j/ b! ]  {, a, j+ ?
22f9479663594e7dbde57289e3f1c044.png
0 |- P  d8 F9 C; p, O) U& N, l/ N( u# ^! B. r
————————————————% v7 \  ~; S( `6 w1 W. f
版权声明:CodeForCoffee1 ]% b8 M/ A# i) S0 J8 E
9 L* n+ K0 c. i$ g1 h: w! O

4 g3 U& k+ q, U- Y3 {' b# M% s: O
赞 收藏 评论0 发布时间:2022-12-27 18:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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