|
本期我们就介绍STM32的GPIO的各种模式。 @0 z2 @$ k9 S X; r+ G& G * @7 X; j0 a& o, e' K4 s8 M STM32的GPIO大致可以分为四类:输入模式、输出模式、模拟模式以及复用模式。而每个都有细致的区分和小类。3 h T* s V6 X! J; g8 N) l : g) O2 a# d. F 输入模式; A( w+ S0 K: R2 @ 首先是输入模式,顾名思义输入模式就是用来向单片机输入信号的,但是这里的信号需是符合STM32的高低电平信号。) X, r" G# P j$ L' B1 X 8 j1 F( D7 f: g3 ]% k* R STM32单片机的IO口电平兼容CMOS电平和TTL电平。对于逻辑电平0,所代表的电压范围在0.8v以下,而大于2v的话则代表逻辑1。STM32工作电压范围为2V ≤ VDD ≤ 3.6V。对于COMS端口,逻辑0的电压范围为-0.3V ≤ VIL ≤ 1.164V。至于高电平,STM32支持5v和3.3v。具体须看STM32芯片手册以定。 * e# }9 F+ X4 p( L, V0 n' \/ ? 而输入模式根据上拉电阻的不同分为输入上拉、输入下拉、输入浮空,它决定着当没有信号输入的时候,GPIO的电平是高电平还是低电平亦或者是不确定电平。! r6 O" ~" v" y. F6 G - d2 N: L% c) u- u7 s
输出模式 顾名思义是单片机对外输出信号,这里的信号也是高低电平,外部器件可以读取输出端口的高低电平以达到控制外部器件的目的。! h2 d; w6 `5 r1 s$ n ! T6 C& r4 s3 s; n; P; ~ 输出模式除了上拉下拉电阻用以避免浮空状态的高低电平之外,还区分了推挽输出和开漏输出。 * L% }0 C4 e& A& t3 p
如图即为推挽输出的示意图,电流通过两个MOS管/三极管由控制引脚形成一推一挽,故名推挽。 推挽输出的好处是其可以有较大的输出电流,如果说后续的负载需要较大的电流的话,推挽输出是一个非常好的选择。 ; E* ]6 C& D, \4 E3 |6 [ 但是有利有弊,由于其推挽输出的电路结构,导致不能同时有两个推挽输出的IO口相连接。$ |* V4 b( g: @
8 S$ I% D8 n* P. a d6 m% N* | 否则电流就会通过三极管/MOS管导通,导致GPIO烧毁,因此如果使用GPIO的推挽模式,则必须避免IO的相互连接,也就是线与。) i" Y' Q- ~) C# \6 x$ x3 y5 T% C 7 l k- F b. a; _5 L5 t. t m" ~ 而另一种模式则是:开漏输出
2 _) _+ b) Q1 H& |7 C 由于其上拉电阻的存在,因此开漏输出的IO可以实现线与。但是同样的是这个上拉电阻的存在,导致其输出能力会不如推挽输出,因此开漏输出通常用在总线应用上,例如I2C的SCL和SDA线通常会挂载多个设备,因此通常这时候我们通常就会使用开漏输出,尤其是使用模拟I2C通讯的时候千万要小心不要使用成推挽输出了。 模拟模式 模拟模式通常应用在ADC或者DAC中。
( i9 J9 M; ~0 o 为了减少上拉电阻和下拉电阻对ADC采样或者DAC输出的影响,通常模拟输出会关闭上下拉电阻,保证模拟信号不失真。) G* e+ d) M/ [ ! k$ u" c4 ~6 \7 ]# g
所以如果你的ADC和DAC的准确度有问题的话,可以检查一下是否加了上下拉电阻而不是将IO配置为输入模式。0 Z' u4 G' z% I/ ?6 n- E 复用模式 , G& |" R4 N& S0 h. k$ k
复用模式通常作为外设使用,例如硬件I2C,硬件SPI,串口通信等等,复用下,通常这些IO会有其特定的功能,我们一般不将其作为普通的输入输出IO使用。 最后还有一些特殊IO,例如时钟输入IO,事件检测IO等等。& J3 k6 `) f$ D; n8 g8 y$ A/ n+ F8 u 8 K5 L8 }) i9 z7 T+ L; O
6 ~- j+ Z2 p+ L! w8 V 转载自:电路小白- y5 Q. `' {- g% `1 m) s 如有侵权请联系删除 ! m V' K9 K# W9 Y s |
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
OpenSTLinux 6.1发布:M33-TD加持+安全升级,STM32MPU开发效率翻倍!
微信公众号
手机版