【车载开发系列】GPIO核心概念理解

【车载开发系列】GPIO核心概念理解

GPIO核心概念理解

一. GPIO输入输出类型

GPIO简单理解就是芯片对外的开关和眼睛。

GPIO的输入有传感器,按键,外部信号;GPIO的输出有控制灯,电机,电平。

二. 五个核心功能

1.输出高低

2.读取输入电平的高低

3.输入模式:上拉/下拉/浮空

4.输出模式:推挽/开漏

5.GPIO中断(边沿触发)

1)上拉输入(Pull-up)

没有信号时内部接上高电平VCC(3.3V/5V),默认是1,当外部按键按下之后,电平变为0。

2)下拉输入(Pull-down)

内部通过电阻接到GND中,自动是低电平,当外部给高电平时变为1,下拉输入用的比上拉输入少,

很多传感器默认不输出时悬空,必须下拉来防止干扰。无感应时下拉为低,有感应时传感器输出高。

3)浮空模式(Floating)

既不上拉也不下拉,它没有默认,飘着,电平不确定。千万不要把传感器,按键设置为浮空模式。它的特点是输入阻抗极高。

4)浮空模式使用场景

模拟输入ADC,光敏,电压采集,电位器等不能上拉与下拉,否则影响电压值。还有外部已经有强驱动电路。

5)推挽输出(Push-Pull)

可以强推高电平也可以强推低电平,一个上管接VCC,一个下管接GND,想稳定的输出高电平或者低电平,就使用推挽输出。控制LED ,控制继电器,蜂鸣器,普通IO口输出就使用它

6)开漏输出(Open-Drain)

只能主动拉低不能主动拉高,高电阻是靠外部电阻上拉上去。要共享总线,需要电平转换时,推荐使用开漏输出。

7)复用推挽/复用开漏

把GPIO交给外部设备使用的时候,就用复用推挽/复用开漏。它就不自己输出高低电平,而是把引脚借给外部设备来使用。

复用开漏:I2C

复用推挽:SPI,UART,PWM

普通推挽GPIO手动来控制,复用推挽则是外设自动控制,电平也是由外设来产生。

三. GPIO中断的概念

GPIO中断是指通用输入输出(General-Purpose Input/Output)引脚在检测到特定电平变化或信号跳变时,主动向处理器发送中断请求,使处理器暂停当前任务、转而执行对应的中断服务程序(ISR)的机制。

1)核心特点

  1. 触发方式
    电平触发:引脚保持高电平或低电平时触发中断(如持续高电平触发)。
    边沿触发:引脚电平发生跳变时触发,分为上升沿(低→高)、下降沿(高→低)或双边沿(两种跳变都触发)。
  2. 作用
    替代轮询方式,减少CPU资源占用,实现对外部事件的实时响应(如按键按下、传感器信号变化等)。
  3. 处理流程
    1. 配置GPIO引脚为中断模式并设置触发条件;
    2. 引脚检测到符合条件的信号,向CPU发送中断请求;
    3. CPU暂停当前任务,跳转到对应的中断服务程序执行;
    4. 中断处理完成后,CPU返回原任务继续执行。

2)归纳总结

GPIO中断是GPIO引脚检测到特定电平变化或信号跳变时,向处理器发送中断请求,使处理器暂停当前任务并执行对应中断服务程序的机制,用于实现对外部事件的实时响应。

3)边沿触发

仅在GPIO引脚电平发生跳变的瞬间触发中断的机制。常见于需要快速响应外部信号变化的场景。

四. GPIO输入输出总结

  1. 输入---我听你的(读取外部信号)
  2. 输出---我指挥你(向外发出信号)
  3. 按键---上拉输入,浮空输入
  4. ADC---模拟输入
  5. LED---通用推挽
  6. 软件I2C---通用开漏
  7. 硬件I2C---复用开漏
  8. PWM、SPI---复用推挽
  9. GPIO中断---按键输入检测,传感器信号捕捉(红外,触摸传感器)
相关推荐
羽翼未丰的啊博14 小时前
DBC_2_C上位机
qt·车载系统·汽车
小羊子说12 天前
关于车机中的升级流程小结(SOC、MCU、4G升级流程)
android·adb·性能优化·车载系统
小羊子说12 天前
Android 车机开发中常用的adb 脚本(更新中)
android·linux·adb·性能优化·车载系统
码界奇点16 天前
基于Spring Boot的医院药品管理系统设计与实现
java·spring boot·后端·车载系统·毕业设计·源代码管理
码界奇点16 天前
基于Spring Boot和MyBatis的图书管理系统设计与实现
spring boot·后端·车载系统·毕业设计·mybatis·源代码管理
腾视科技TENSORTEC16 天前
安全驾驶 智在掌控|腾视科技ES06终端,为车辆运营赋能
大数据·人工智能·科技·安全·ai·车载系统·车载监控
腾视科技TENSORTEC17 天前
腾视科技重磅发布AD03行车记录仪DashCam!全维守护,智驭出行新生态
大数据·网络·人工智能·科技·ai·车载系统·车载监控
码界奇点17 天前
基于ASP.NET Core的内容管理系统设计与实现
c++·后端·车载系统·毕业设计·asp.net·源代码管理
冬奇Lab20 天前
应用异常退出实战分析:一次“幽灵杀手“引发的车载系统故障排查
车载系统·安卓
杰克崔22 天前
preempt_count()、in_interrupt()等上下文判断常用函数及宏介绍
linux·运维·服务器·车载系统