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

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

[复制链接]
STMCU小助手 发布时间:2022-5-3 14:17
一、GPIO简介6 z2 }2 I, k+ T- _; P8 [
GPIO就是通用I/O(输入/输出)端口,是STM32可控制的引脚。
5 F6 E# P) O; y# q. E3 q8 `STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。
) h0 [0 B" R8 g! v2 r* q% o7 `3 l6 G( `" R- E9 x
二、GPIO工作模式1 Z' a5 n! t$ p+ O# v; I
1. 四种输入模式
  T* V- ]+ U/ \/ H0 C, v( @+ b4 hGPIO_Mode_IN_FLOATING 浮空输入模式
! w* p  f# u0 [. H  E1 ]2 uGPIO_Mode_IPU 上拉输入模式
2 d: m! A2 P3 g; U7 \  AGPIO_Mode_IPD 下拉输入模式
7 G8 J. I/ A# b  p, _GPIO_Mode_AIN 模拟输入模式- `  T6 f. B7 f9 h8 [4 x7 Q% O
2. 四种输出模式) n. }: y0 ]2 d3 ~0 D- k
GPIO_Mode_Out_OD 开漏输出模式
8 x# i1 b& n) V4 I* A2 `& cGPIO_Mode_Out_PP 推挽输出模式+ p% b+ V, ]0 V9 Y$ a2 p
GPIO_Mode_AF_OD 复用开漏输出模式" E$ B' N) e; J# g- }
GPIO_Mode_AF_PP 复用推挽输出模式6 t( m3 f  p+ f! R: c, v
三、GPIO工作原理解析
8 y. Y; |- k# J. ^0 q! T1. I/O端口的基本结构框图
' f( O1 s0 U* M/ \6 ~' ?+ h+ H9 m+ ?- {7 e
`4X~)N9~3[_~%JQZU__HBP0.png : ]9 A" m2 W7 d0 D- C) G
% V" k; T6 t% h+ C- ?2 ^
2. I/O端口的基本结构介绍
- r! s3 E* L0 r$ k; H
保护二极管. I1 _% f  D  O" B
作用: 防止引脚外部输入过高和过低的电压,防止不正常电压引入芯片,导致芯片烧毁。! B; r6 [, `  T* r: U
当引脚电压高于VDD时,上方的二极管导通。
( \% C* \2 b* \: I' ?/ g当引脚电压低于VSS时,下方的二极管导通。
6 ~% w2 `# V- I8 I
  X- g$ x' u4 C2 o% N; W0 d上拉电阻和下拉电阻/ b4 T  u8 e5 t, ^% q
作用: 控制引脚默认状态的电压。
! @! @# [8 H0 x* v  Z9 d开启上拉的时候,引脚默认电压为高电平。
$ Q" |3 |, u3 Z开启下拉的时候,引脚默认电压为低电平。
( }: ~+ A& ?4 J) I2 ?3 l; j, A# @2 F" L1 z# h
TTL肖特基触发器
, W! g2 o! e) B; |  M% h% `5 Y* JTTL肖特基触发器其实可以理解为用肖特基管构成的施密特触发器。
1 k$ s5 S: Q1 j/ I, e, ~1 E作用: 将相对缓慢变化的模拟信号变成矩形信号。: n9 N6 E' p+ i5 b
当输入电压高于正向阈值电压,输出为高。
6 I/ t6 B# X- A当输入电压低于负向阈值电压,输出为低。
; |9 K. K9 G; j/ x) A( h( E1 x& |  l' i* u
P-MOS管和N-MOS管  q7 B& t" V% W, V
作用: 使得GPIO具有“推挽输出”和“开漏输出”的模式。& U/ D9 G4 S1 t5 C0 a6 I+ d# t
P-MOS管: MCU输出为 1 导通,低电平关闭。% ^! R. K/ \0 {# y& `4 K# u1 I% B
N-MOS管: MCU输出为 0 导通,高电平关闭。
( J4 r' I0 C6 t8 q
( W, L- _8 Z$ U3. GPIO工作模式解析9 s) k; y; n7 }  n; i7 M
浮空输入模式
. k5 E: a+ q0 d; ]- e浮空输入模式下,I/O端口的电平信号直接进入到输入数据寄存器。
" m; a# T2 i$ T9 AMCU直接读取I/O口电平,I/O的电平状态是不确定的,完全由外部输入决定。" s- U7 s% i8 l; x' B  ?; c
, `& C( T+ c9 k& g
EEJVLSJMHEE`NX1}XUZF6MQ.png
* S  l" l* T  y/ l# c# C9 n
) `! `5 [7 w+ N! C Q5VUKIL18%U)E%LHF]N5L0F.png
, {6 }. I& B9 D0 m. t* S
2 d  K8 n% D6 U1 M/ I上拉输入模式1 A/ K8 T. {# I$ H7 b  J: v+ k
上拉输入模式下, I/O端口的电平信号经过上拉电阻进入到输入数据寄存器。
% ?# n6 r3 `8 ?0 w" A  I+ F- `5 Y3 p+ H* @6 U6 o
(X86[7RK{8IPV{0}KJKWDWP.png " M5 S: S7 J& S4 G
  W9 A9 M0 m9 w" c6 ]' O
RC9`5W{GN4QP%F~B0DY~S05.png : a4 m* H1 Q* L: V) R2 l( D5 _

# t3 |% {. N: S4 ?STM32的内部上拉是"弱上拉",即通过此上拉输出的电流是很弱的,如要求大电流还是需要外部上拉。
& P$ t* ^3 S/ @& ]
5 T4 }* W% w2 d下拉输入模式/ T/ g7 B1 G6 _2 R
下拉输入模式下, I/O端口的电平信号经过下拉电阻进入到输入数据寄存器。  I! w$ j/ c' W1 E& n5 K
: I( Z) _& q: f) T9 ^, j1 m
9{N}DAO{NV`P9YWL0CJ[W{V.png " ~/ u. W. V+ y+ O1 ]5 n) O8 V

8 `5 T) ~/ z! ]0 c3 s* d %S}J72)0M{SBRIL0KI~9)E0.png
9 f6 z% k+ c3 n2 _
+ @% E# J) `  y# j模拟输入模式
, P1 k  [" a0 x! X( S8 W6 o
模拟输入模式下, I/O端口的电平信号不经过TTL肖特基触发器,直接进入ADC模块,并且输入数据寄存器为空 ,MCU不能在输入数据寄存器上读到引脚状态。
5 E- V! u6 z: }. D在模拟输入模式下,上拉电阻和下拉电阻是不起作用的,即使配置上拉和下拉模式,也不会有作用。, N' @. W, }/ k" h5 k) n- J% I2 [- k' ~
1 Y9 p. d$ x" }5 d# f' a5 j) O
${LA~36`9~4@066WCG{N{63.png
4 V* |) r1 N+ r5 S. L& {# f
; g* a$ ?( r5 n) S4 N# l" [开漏输出模式

; ]) g+ p# R# X3 ~8 K开漏输出模式下, P-MOS管不工作,只有N-MOS管工作,MCU只能控制输出低电平。
  l* @2 J+ C4 AMCU输出低电平的时候,N-MOS管导通,I/O引脚输出低电平。9 o5 C* k  L9 d* R5 b  }4 I
MCU输出高电平的时候,N-MOS管关闭,I/O引脚悬空状态。* o- R3 k8 ~3 R2 q+ E( p

& w8 \( ^8 w% J6 r VBHP}RR$Q(TWI[HHT{HO$`K.png 6 n' Y, V6 e7 ^5 S" f+ a
# n- t! Q" p) a. c. S) V
推挽输出模式# o: |3 C5 u9 X8 D' u( ^
推挽输出模式下, P-MOS管和N-MOS管都工作,MCU可以控制输出高电平和低电平。$ Q$ v( w+ P2 @: W; u
MCU输出为 0 的时候,N-MOS管导通,I/O引脚输出低电平。7 N0 V. U+ Y3 d0 M1 n7 |6 l5 p
MCU输出为 1 的时候,P-MOS管导通,I/O引脚输出高电平。6 Z7 l6 y3 D) w( J4 K: |# S6 }5 M7 w
' P7 w7 |* g4 O5 C" n
JU}L4ELAYLJW6ZEJ3A`CGQT.png $ X! s% |8 D6 q% j( Y

- W% S9 Q# ^# D, @8 F* f/ n复用开漏输出模式3 e0 h% z0 o/ m- t1 R+ K& H, }
复用开漏输出模式下, GPIO复用为其他外设,输出数据寄存器GPIOx_ODR无效, 输出的高低电平的来源于其它外设。
( g9 l  X( v. J5 t8 t* }* i) }* {
UNH3DR2C{7(G]8HY{KW~6.png 8 T' W: h2 ^- \: y
6 n/ g0 {- l0 E- ]8 J9 M4 E
复用推挽输出模式

/ `* \( M8 M( f) J7 c. B4 e3 M复用推挽输出模式下, GPIO复用为其他外设,输出数据寄存器GPIOx_ODR无效, 输出的高低电平的来源于其它外设。/ r8 F" `4 i  h  t' F  l  g8 n
$ ?' S3 v' T/ w, P
E)%SN~($X2R5{]`YL0K7M]F.png
6 p8 Q( D* q9 A0 q7 ]) _  p0 ]7 }- g) ?/ h

8 M. p& t" C$ I$ a6 Y* H  v& I
收藏 评论0 发布时间:2022-5-3 14:17

举报

0个回答

所属标签

相似分享

官网相关资源

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