STMCU小助手
发布时间:2022-5-3 14:17
|
一、GPIO简介 GPIO就是通用I/O(输入/输出)端口,是STM32可控制的引脚。3 x7 G. W" g; e+ S1 J STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。) p7 S8 {2 e# [ 二、GPIO工作模式9 ]0 f! v. y- ^ 1. 四种输入模式7 ~- ~2 l1 Q+ g2 d. `$ }1 e0 [ GPIO_Mode_IN_FLOATING 浮空输入模式 GPIO_Mode_IPU 上拉输入模式 GPIO_Mode_IPD 下拉输入模式 GPIO_Mode_AIN 模拟输入模式& D Z7 p# @% g8 {1 q 2. 四种输出模式 GPIO_Mode_Out_OD 开漏输出模式 GPIO_Mode_Out_PP 推挽输出模式) i7 f% _, A& g$ @' I. h/ E GPIO_Mode_AF_OD 复用开漏输出模式 GPIO_Mode_AF_PP 复用推挽输出模式 三、GPIO工作原理解析 1. I/O端口的基本结构框图8 ?, n1 B7 k( j8 V! d8 D+ L 3 i8 [" F9 H% h" Q- O$ t2 H* o
8 _& R1 ]& Z. K, ~8 ]& M 2. I/O端口的基本结构介绍; g; Z3 r% h& F 保护二极管 作用: 防止引脚外部输入过高和过低的电压,防止不正常电压引入芯片,导致芯片烧毁。- T0 W& ^* O; ]+ w6 w, L# t- v 当引脚电压高于VDD时,上方的二极管导通。 当引脚电压低于VSS时,下方的二极管导通。 7 d) n1 I' `7 R9 ] 上拉电阻和下拉电阻/ @" F0 p9 z* u( o9 ^ 作用: 控制引脚默认状态的电压。% X; M$ Q2 p- v" W 开启上拉的时候,引脚默认电压为高电平。5 j* ^3 s) W( t8 j2 l 开启下拉的时候,引脚默认电压为低电平。 TTL肖特基触发器! }( w8 q0 H. n* J3 R6 ` TTL肖特基触发器其实可以理解为用肖特基管构成的施密特触发器。, v; p- [( h" D {1 W+ ?, J 作用: 将相对缓慢变化的模拟信号变成矩形信号。 当输入电压高于正向阈值电压,输出为高。 当输入电压低于负向阈值电压,输出为低。 P-MOS管和N-MOS管$ \* L D9 ^- r% f, u6 O4 |# X 作用: 使得GPIO具有“推挽输出”和“开漏输出”的模式。. N5 Y' [' n. h9 O4 H; f% `4 H P-MOS管: MCU输出为 1 导通,低电平关闭。 N-MOS管: MCU输出为 0 导通,高电平关闭。: D& n/ ?( l$ T$ [. m; C % ^' w3 I( \$ I1 j 3. GPIO工作模式解析1 E. J% t( Y5 }% t4 D 浮空输入模式 浮空输入模式下,I/O端口的电平信号直接进入到输入数据寄存器。 MCU直接读取I/O口电平,I/O的电平状态是不确定的,完全由外部输入决定。" F) h1 }* g. {
上拉输入模式/ f1 l( I1 s& z* Z$ h6 a 上拉输入模式下, I/O端口的电平信号经过上拉电阻进入到输入数据寄存器。& C& d8 F# ~, ?) T5 L
- y' u$ T4 `# e! n
" S4 Y$ N' K# l8 D STM32的内部上拉是"弱上拉",即通过此上拉输出的电流是很弱的,如要求大电流还是需要外部上拉。4 u D9 `' Y6 I3 q9 B: e 下拉输入模式/ r, o# ^. l; I( @. H3 r+ I# q 下拉输入模式下, I/O端口的电平信号经过下拉电阻进入到输入数据寄存器。/ y, L; v2 M5 H% S+ j7 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 在模拟输入模式下,上拉电阻和下拉电阻是不起作用的,即使配置上拉和下拉模式,也不会有作用。
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 ~
推挽输出模式3 d! \) Y3 a3 n2 [ y 推挽输出模式下, P-MOS管和N-MOS管都工作,MCU可以控制输出高电平和低电平。7 {+ r) |! P: E9 s MCU输出为 0 的时候,N-MOS管导通,I/O引脚输出低电平。 MCU输出为 1 的时候,P-MOS管导通,I/O引脚输出高电平。 . H ^6 p( }+ m! |8 v
& Z, C2 i0 a3 `! J; {8 r# z 复用开漏输出模式 复用开漏输出模式下, GPIO复用为其他外设,输出数据寄存器GPIOx_ODR无效, 输出的高低电平的来源于其它外设。$ I+ b7 P/ S0 Q2 M/ m; @1 |* V5 { 6 n y4 K4 q* s! b. l$ i
复用推挽输出模式 复用推挽输出模式下, GPIO复用为其他外设,输出数据寄存器GPIOx_ODR无效, 输出的高低电平的来源于其它外设。; C: R0 e8 p, [' t* F - S3 B5 T: [& ]
2 ]3 I v1 O# z) t; c( b |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版