GPIO(General Purpose Input/Output,通用输入/输出)在微控制器(MCU)和微处理器(MPU)等嵌入式系统中扮演着至关重要的角色,它允许用户灵活地控制外部设备的输入和输出,GPIO的工作模式决定了其在不同场景下的行为和应用。
一、输入模式
1.上拉输入
特点:在无外部输入信号时,通过内部上拉电阻将GPIO端口保持在高电平状态。
应用:常用于需要确保输入信号稳定为高电平的场景,如防止信号漂移或外部设备未连接时导致的信号不确定。外部只有靠谱的低电平,需要配置成上拉输入;
2.下拉输入
特点:在无外部输入信号时,通过内部下拉电阻将GPIO端口保持在低电平状态。
应用:外部只有靠谱的高电平,需要配置成下拉输入;与上拉输入相反,下拉输入用于需要确保输入信号稳定为低电平的场景。
3.浮空输入
特点:GPIO端口的电平状态完全由外部输入决定,无内部上拉或下拉电阻。如果引脚悬空,读取的电平状态将不确定。
应用:常用于需要读取外部设备真实电平状态的场景,如按键检测等。当外部检测电路,有稳定的高电平和低电平,就选择浮空输入;
4.模拟输入
特点:输入信号不经施密特触发器处理,直接作为模拟量接入。
应用:连接模拟传感器,如温度、光照等传感器,以采集和处理模拟信号。ADC(检测外部电压)、DAC检测时候,需要配置成模拟输入。
二、输出模式
1.推挽输出
特点:可以输出高、低电平,推挽结构由两个互补控制的三极管组成,导通损耗小、效率高,既可以向负载灌电流,也可以从负载抽取电流。
应用:连接数字器件,如LED、继电器等,以控制其开关状态。
2.开漏输出
特点:输出端相当于三极管的集电极,只能输出低电平或高阻态,要得到高电平状态需要外部上拉电阻。适合电流型驱动,吸收电流能力强。
应用:连接不同电平的器件,如IIC总线通信,实现电平匹配和灵活的输出方式。
3.复用功能模式
3.1复用推挽输出
特点:GPIO端口受内部外设控制,如定时器的PWM输出、SPI的MOSI和MISO等。
应用:在需要利用GPIO端口实现特定外设功能时,如PWM信号输出、SPI通信等。
3.2复用开漏输出
特点:与复用推挽输出类似,但输出模式为开漏输出,需要外部上拉电阻。
应用:在需要复用GPIO端口实现特定外设功能,并且要求输出模式为开漏输出的场景。
GPIO的工作模式丰富多样,涵盖了输入、输出和复用功能等多个方面。在实际应用中,需要根据具体的需求和场景来选择合适的GPIO工作模式,以实现对外部设备的精准控制和通信。