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

【经验分享】STM32F103:GPIO八种工作原理详解

[复制链接]
STMCU小助手 发布时间:2022-5-3 14:17
一、GPIO简介
6 N& p" H. x3 d5 BGPIO就是通用I/O(输入/输出)端口,是STM32可控制的引脚。3 x7 G. W" g; e+ S1 J
STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。) p7 S8 {2 e# [

6 ~- G1 \4 p" m5 K/ U: \  z二、GPIO工作模式9 ]0 f! v. y- ^
1. 四种输入模式7 ~- ~2 l1 Q+ g2 d. `$ }1 e0 [
GPIO_Mode_IN_FLOATING 浮空输入模式
3 b4 W; e! w% z  q: _6 UGPIO_Mode_IPU 上拉输入模式
* E$ ^5 t" R6 u) x1 i# h! P( s, [GPIO_Mode_IPD 下拉输入模式
& T5 K: v" b- X7 f3 @GPIO_Mode_AIN 模拟输入模式& D  Z7 p# @% g8 {1 q
2. 四种输出模式
+ \- j3 S9 a+ d$ j  L/ z/ D* KGPIO_Mode_Out_OD 开漏输出模式
! z. y9 Y& t6 H" |GPIO_Mode_Out_PP 推挽输出模式) i7 f% _, A& g$ @' I. h/ E
GPIO_Mode_AF_OD 复用开漏输出模式
2 m; C5 m1 ^3 g  vGPIO_Mode_AF_PP 复用推挽输出模式
/ S; o! n) m# i$ ]三、GPIO工作原理解析
4 F! o4 C% C5 I: X1. I/O端口的基本结构框图8 ?, n1 B7 k( j8 V! d8 D+ L
3 i8 [" F9 H% h" Q- O$ t2 H* o
`4X~)N9~3[_~%JQZU__HBP0.png 7 E1 Y2 M% ~2 o2 @7 x& v$ `
8 _& R1 ]& Z. K, ~8 ]& M
2. I/O端口的基本结构介绍
; g; Z3 r% h& F
保护二极管
9 L- O. U3 ?3 c' m# M9 {" b作用: 防止引脚外部输入过高和过低的电压,防止不正常电压引入芯片,导致芯片烧毁。- T0 W& ^* O; ]+ w6 w, L# t- v
当引脚电压高于VDD时,上方的二极管导通。
  D  P; B4 {5 R" H当引脚电压低于VSS时,下方的二极管导通。
5 X$ D5 R8 B2 S2 O7 d) n1 I' `7 R9 ]
上拉电阻和下拉电阻/ @" F0 p9 z* u( o9 ^
作用: 控制引脚默认状态的电压。% X; M$ Q2 p- v" W
开启上拉的时候,引脚默认电压为高电平。5 j* ^3 s) W( t8 j2 l
开启下拉的时候,引脚默认电压为低电平。
/ T& c* A. h: b' s. D
; j# Z) F, e. v7 B2 Z% PTTL肖特基触发器! }( w8 q0 H. n* J3 R6 `
TTL肖特基触发器其实可以理解为用肖特基管构成的施密特触发器。, v; p- [( h" D  {1 W+ ?, J
作用: 将相对缓慢变化的模拟信号变成矩形信号。
8 M8 c! H2 Y0 A当输入电压高于正向阈值电压,输出为高。
% o6 p* |; p* N. w$ s. D& y1 }8 ?当输入电压低于负向阈值电压,输出为低。
+ n  S2 G2 }3 Z* \3 ^& j+ b
. H, p6 S4 E! ]$ p. e: O- XP-MOS管和N-MOS管$ \* L  D9 ^- r% f, u6 O4 |# X
作用: 使得GPIO具有“推挽输出”和“开漏输出”的模式。. N5 Y' [' n. h9 O4 H; f% `4 H
P-MOS管: MCU输出为 1 导通,低电平关闭。
0 z% n! V* g% W5 V7 P; ZN-MOS管: MCU输出为 0 导通,高电平关闭。: D& n/ ?( l$ T$ [. m; C
% ^' w3 I( \$ I1 j
3. GPIO工作模式解析1 E. J% t( Y5 }% t4 D
浮空输入模式
+ k1 I- z6 T! m0 S( l# I& M浮空输入模式下,I/O端口的电平信号直接进入到输入数据寄存器。
6 S7 w7 k* e. R5 A% q/ fMCU直接读取I/O口电平,I/O的电平状态是不确定的,完全由外部输入决定。" F) h1 }* g. {

# K! [, M0 S0 n8 `1 S EEJVLSJMHEE`NX1}XUZF6MQ.png " U8 t4 U) m, L2 W6 }' ?8 u7 O

$ h. J9 {, [$ x3 Q1 `) F2 z Q5VUKIL18%U)E%LHF]N5L0F.png $ Y* g1 p& y) Y. N) C% J

, L5 a' d2 A  E上拉输入模式/ f1 l( I1 s& z* Z$ h6 a
上拉输入模式下, I/O端口的电平信号经过上拉电阻进入到输入数据寄存器。& C& d8 F# ~, ?) T5 L

1 ~, u3 T/ q0 v) }/ n! f, t5 R$ g (X86[7RK{8IPV{0}KJKWDWP.png
8 }5 U. V' Y0 X+ c  `3 U- y' u$ T4 `# e! n
RC9`5W{GN4QP%F~B0DY~S05.png 2 G! h# a6 b! M4 V; ^2 c
" S4 Y$ N' K# l8 D
STM32的内部上拉是"弱上拉",即通过此上拉输出的电流是很弱的,如要求大电流还是需要外部上拉。4 u  D9 `' Y6 I3 q9 B: e

: J# T# \' I6 ]4 J5 ?, L下拉输入模式/ r, o# ^. l; I( @. H3 r+ I# q
下拉输入模式下, I/O端口的电平信号经过下拉电阻进入到输入数据寄存器。/ y, L; v2 M5 H% S+ j7 X

# z1 Z+ ^  ?! j+ L. o 9{N}DAO{NV`P9YWL0CJ[W{V.png / t0 k; h3 p. k$ t/ S2 |& o

9 d# `& j1 T. o %S}J72)0M{SBRIL0KI~9)E0.png % ~9 f+ Z+ N+ {( x
: n1 e8 H9 P% R4 q; ]  ?
模拟输入模式
$ R) J: y# b1 E7 E. K( w- L
模拟输入模式下, I/O端口的电平信号不经过TTL肖特基触发器,直接进入ADC模块,并且输入数据寄存器为空 ,MCU不能在输入数据寄存器上读到引脚状态。! `8 ]0 q) f/ L" C! s/ q  W- e
在模拟输入模式下,上拉电阻和下拉电阻是不起作用的,即使配置上拉和下拉模式,也不会有作用。
2 P/ J0 _' ~: I7 H; d) N
6 I/ E6 m! Q3 m0 K) [9 L+ z ${LA~36`9~4@066WCG{N{63.png 2 Q$ f* N( x9 l% E  B1 G
9 _2 U, o2 N& ]( x
开漏输出模式
! Z, E  z0 @. m
开漏输出模式下, P-MOS管不工作,只有N-MOS管工作,MCU只能控制输出低电平。9 o- }% ?' Q8 ~( P
MCU输出低电平的时候,N-MOS管导通,I/O引脚输出低电平。  V: n% `% u5 T0 K/ E9 I
MCU输出高电平的时候,N-MOS管关闭,I/O引脚悬空状态。5 p7 H6 `( P5 \, R5 ~

, u- k0 L9 x# C# V VBHP}RR$Q(TWI[HHT{HO$`K.png
! ?+ R; R, A6 H  @0 A/ c1 E9 o; T
( m  v5 |! ?4 s" G+ |' Z( x5 {& W推挽输出模式3 d! \) Y3 a3 n2 [  y
推挽输出模式下, P-MOS管和N-MOS管都工作,MCU可以控制输出高电平和低电平。7 {+ r) |! P: E9 s
MCU输出为 0 的时候,N-MOS管导通,I/O引脚输出低电平。
6 z* q( f$ ^$ a  U* E7 }MCU输出为 1 的时候,P-MOS管导通,I/O引脚输出高电平。
, I; f2 P" B/ J2 ]" V. H  ^6 p( }+ m! |8 v
JU}L4ELAYLJW6ZEJ3A`CGQT.png
$ E% M: w+ _- W4 P% d1 H& S6 i& Z, C2 i0 a3 `! J; {8 r# z
复用开漏输出模式
# v( j5 p( V4 x3 h. P复用开漏输出模式下, GPIO复用为其他外设,输出数据寄存器GPIOx_ODR无效, 输出的高低电平的来源于其它外设。$ I+ b7 P/ S0 Q2 M/ m; @1 |* V5 {
6 n  y4 K4 q* s! b. l$ i
UNH3DR2C{7(G]8HY{KW~6.png   {/ u/ L  J$ s% o, e2 B* q

5 ]% n7 a" j$ t' y: V6 a0 M复用推挽输出模式

' i6 x: }5 q& X复用推挽输出模式下, GPIO复用为其他外设,输出数据寄存器GPIOx_ODR无效, 输出的高低电平的来源于其它外设。; C: R0 e8 p, [' t* F
- S3 B5 T: [& ]
E)%SN~($X2R5{]`YL0K7M]F.png 2 y! e8 O+ {7 U
2 ]3 I  v1 O# z) t; c( b

4 S: v3 R5 ]' t/ c. \* s
赞 收藏 评论0 发布时间:2022-5-3 14:17

举报

0个回答

所属标签

相似技术帖

官网相关资源

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