STM32/GPIO的8种工作模式
本文详细介绍了STM32单片机中GPIO(通用输入输出端口)的8种工作模式,包括4种输入模式和4种输出模式。输入模式有上拉输入、下拉输入、浮空输入和模拟输入;输出模式包括推挽输出、开漏输出、复用推挽输出和复用开漏输出。
目录
简单理解GPIO
GPIO (通用输入输出端口)是单片机上的一组引脚,可以被编程用来作为输入或输出。
作为输入:GPIO引脚可以配置为读取外部信号的状态。
作为输出:GPIO引脚可以配置为向外部设备发送信号。
GPIO的8种工作模式(4种输入+4种输出)

上拉输入模式(GPIO_Mode_IPU)
内部上拉电阻将GPIO引脚电平拉高,引脚保持高电平。当外部电路提供低于阈值的电压时引脚拉低为低电平。
应用场景:内部上拉电阻将默认电平拉高,用于检测低电平触发信号(如低电平触发按键等)。
下拉输入模式(GPIO_Mode_IPD)
内部下拉电阻将GPIO引脚电平拉低,引脚保持低电平。当外部电路提供高于阈值的电压时引脚拉高为高电平。
应用场景:内部下拉电阻将默认电平拉低,用于检测高电平触发信号(如红外接收头信号/外部高脉冲信号等)。
浮空输入模式(GPIO_Mode_IN_FLOATING)
GPIO引脚不连接内部上/下拉电阻,直接读取外部信号,需外部电路确保信号稳定。
应用场景:外部信号已自带上下拉或高驱动能力信号(如读取UART的RX信号等)。
模拟输入模式(GPIO_Mode_AIN)
GPIO引脚直接与内部的模拟电路相连,用于接收连续变化的模拟信号(ADC采集)。
应用场景:禁用数字逻辑,直接连接ADC或DAC,模拟信号采集(如温度传感器的模拟信号)。

推挽输出模式(GPIO_Mode_OUT_PP)
输出数据寄存器在输出高电平时,P-MOS管工作,引脚输出高电平;输出低电平时N-MOS管工作,引脚输出低电平。
应用场景:数字输出,直接驱动负载(如LED闪烁项目/驱动蜂鸣器等)。
开漏输出模式(GPIO_Mode_OUT_OD)
输出低电平时,N-MOS管工作引脚输出低电平;输出高电平时,引脚处于高阻态,需要外部接上拉电阻才能实现高电平输出。
应用场景:需要双向通信或电平转换的场景;(如I2C的SDA/SCL线、驱动5V设备(STM32的3.3V GPIO通过外部上拉至5V)等)

复用推挽输出模式(GPIO_Mode_AF_PP)
GPIO引脚的控制权交给其他外设模块,同时保持推挽输出的特性。
应用场景:外设功能+推挽输出(如USART的TX引脚、PWM输出等)。
复用开漏输出模式(GPIO_Mode_AF_OD)
GPIO引脚的控制权交给其他外设模块,同时保持开漏输出的特性。
应用场景:外设功能+开漏模式(如I2C通信、CAN的TX/RX线)。
注意:在选择工作模式时,需根据实际情况选择,部分外设并非只能指定一种工作模式。
复用功能
指STM32单片机上的其他外设对GPIO引脚进行控制。
对于输入:在复用功能输入时,GPIO的信号传输至STM32片上外设,由片上外设读取该引脚的状态(例如:在使用USART串口接收数据时,将接收数据的GPIO配置为USART串口的复用功能,就可以由串口通过该引脚接收数据)。
对于输出:来自边上外设的复用功能输出信号也连接到双MOS管结构的输入,红色框选处作为开关选择(例如:在使用USART串口发送数据时,将发送数据的GPIO配置为USART串口的复用功能,此时就可以由串口控制该引脚发送数据)。

简单理解施密特触发器
一种具有迟滞特性的电子电路,双阈值电压(输入电压超过正向阈值电压则输出高电平,输入电压低于负向阈值电压则输出低电平,输入电压处于正向阈值电压和负向阈值电压之间则保持原有电压),能有效消除信号抖动,抗干扰能力强。

注:以上内容仅个人理解,不具备唯一性和绝对正确性,仅供参考。
更多推荐



所有评论(0)