单片机GPIO的八种工作模式

        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工作模式,以实现对外部设备的精准控制和通信。

相关推荐

  1. 单片机GPIO工作模式

    2024-07-11 06:32:01       24 阅读
  2. STM32 单片机 GPIO 工作模式是什么?

    2024-07-11 06:32:01       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 06:32:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 06:32:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 06:32:01       58 阅读
  4. Python语言-面向对象

    2024-07-11 06:32:01       69 阅读

热门阅读

  1. 《火纹:风花雪月》种植最优化问题

    2024-07-11 06:32:01       22 阅读
  2. linux编写驱动程序常用API

    2024-07-11 06:32:01       21 阅读
  3. Scikit-Learn 教程1

    2024-07-11 06:32:01       24 阅读
  4. 数据库系统安全

    2024-07-11 06:32:01       18 阅读
  5. 【技术点】嵌入式技术考点一:C语言

    2024-07-11 06:32:01       15 阅读
  6. 【Spring Boot 异常处理】

    2024-07-11 06:32:01       17 阅读
  7. Linux离线安装redis

    2024-07-11 06:32:01       24 阅读
  8. Memcached介绍和详解

    2024-07-11 06:32:01       20 阅读
  9. Python的入门知识(上)

    2024-07-11 06:32:01       22 阅读
  10. Scikit-learn高级教程:深入理解机器学习算法

    2024-07-11 06:32:01       18 阅读
  11. pip install sklearn 的错误定位与解决办法

    2024-07-11 06:32:01       20 阅读