当前位置: 首页 > news >正文

深入解析GPIO:嵌入式开发必备接口,按键与点灯实验

GPIO

​​​​​基本概念

GPIO(General-purpose I/Os)通用输入输出接口

GPIO是一种在嵌入式系统中广泛使用的接口,它允许系统与外部设备进行交互。GPIO引脚可以配置为输入或输出模式,以读取或控制外部设备的状态。

输入模式:GPIO作为输入时,可以接收来自传感器、开关或其他外部设备的信号。这些信号被传递给嵌入式系统的处理器,以便系统可以根据这些信号做出相应的决策或执行特定的操作。

输出模式:GPIO作为输出时,可以向外部设备发送数字信号。例如,控制LED的亮灭、驱动电机运转等。通过改变输出信号的状态,嵌入式系统可以与外部设备进行交互。

GPIO内部结构

根据stm32U575芯片手册找到GPIO内部框图,基本各个型号的框图差不多。

元器件介绍

保护二极管(1)防止电压过大,保护电路(2)防止反向电动势(电压,就是反向截止)

ESD:防静电保护电路

上拉电阻上拉电阻是将一个不确定的信号拉高;通过一个电阻与电源正极(通常是VCC或 VDD)相连,以保证在默认状态下该信号处于高电平。

下拉电阻下拉电阻是将一个不确定的信号拉低,通过一个电阻与电源负极(通常是GND)相连,使得在默认状态下该信号处于低电平。

它们是电子电路中常见的元件,在电路中主要起到稳定电平、确定默认状态等作用

施密特触发器施密特触发器可以将一个模拟信号波形整型为数字电路能处理的方波波形,起到整型的作用。

施密特触发器和一般比较器不同的点在于,它可以有两个参考电压,分别是正向阈值电压和反向阈值电压。

1. 输入电压 > 正向阈值电压(0.7*VDD),输出高电平;

2. 输入电压 < 负向阈值电压(0.3*VDD),输出低电平;

3.负向阈值电压 < 输入电压 < 正向阈值电压,输出不变。

VDD、VCC、VSS:

VDD:元器件内部的工作电压,范围是1.7v~3.3v

VCC:接入电路的电压

VSS:公共接地端电压

工作模式

浮空输入

特点:上下拉电阻全部关闭

优点:信号完全由外部决定

缺点:当引脚没有接外部电路的时候,其电平信号是不确定的,易受干扰

上拉输入

特点:当外部没有信号输入时,提供默认的高电平输入的电平不会因上下浮动而导致输入信号不稳定

应用:按键检测开关状态读取外部中断信号输入

下拉输入

特点:当外部没有信号输入时,提供默认的低电平,输入的电平不会因上下浮动而导致输入信号不稳定

外界接的是什么电平,读到的就是什么

模拟输入

特点:信号进入后不经过上拉电阻或者下拉电阻,关闭施密特触发器,将原始电压信号传送到片上外设。 所以可以理解为模拟输入的信号是未经处理的信号,是原汁原味的信号。

应用:读取传感器数据等

推挽输出

推挽输出中P-MOS和N-MOS属于可激活状态,具备输出高低电平的能力

当CPU输出高电平1时,经过输出控制器后变为0,此时PMOS管导通,输出高电平,此时是把电流推出去。

当CPU输出低电平0时,经过输出控制器后变为1,此时NMOS导通,输出低电平,此时IO引脚接外部电路时是将电流挽的过程。

开漏输出

开漏输出中PMOS管不工作,只能输出低电平,无法真正输出高电平即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。

当CPU输出低电平0时,NMOS管导通,输出低电平

当CPU输出高电平1时,NMOS管不导通,呈现高阻态相当于电路断开

推挽输出和开漏输出区别:

推挽输出的优缺点:

优点:可以输出高电平和低电平

缺点:输出的高电平值固定为VDD(3.3v),驱动高电压(5v)电器时驱动不起来

开漏输出的优缺点:

缺点:只能输出低电平

优点:通过外接上拉电阻输出高电平,电压大小自己决定,比较灵活;

可以实现线与功能。

复用推挽

复用是指:将 GPIO 引脚的控制权转移到其他片上外设(如 UART、I2C、SPI、TIMER 等),引脚的输出 / 输入信号由这些外设直接控制,而非通过 GPIO 的 ODR 寄存器(输出数据寄存器)。

复用开漏

HAL库实现点灯实验

​​​​​​​实验要求

控制扩展板的LD1灯闪烁

​​​​​​​原理图分析

结论:控制LD1灯的亮灭,只需要往PC4引脚输出高低电平即可。

​​​​​​​cubemx配置

启动SWD调试接口

配置PC4为GPIO_Output,推挽输出、无上下拉、低速

生成keil代码即可

​​​​​​​代码实现
intmain(void){while(1){HAL_GPIO_WritePin(GPIOC,GPIO_PIN_4,GPIO_PIN_SET);HAL_Delay(500);HAL_GPIO_WritePin(GPIOC,GPIO_PIN_4,GPIO_PIN_RESET);HAL_Delay(500);}}

按键实验

​​​​​​​实验要求

按键KEY1按下时控制LD3灯进行反转。

​​​​​​​原理图分析

结论:KEY1按键连接到了PC9引脚,当按键按下时PC9引脚读到低电平,按键抬起时读到是高电平。

​​​​​​​cubemx配置

​​​​​​​代码实现
while(1){//条件满足按键按下if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9)==0){HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);}}
​​​​​​​按键抖动问题

以上代码下载后,当按键按下时,LD3进行反转的效果不好,原因如下:

  • 首先,当按键按下 / 释放时,触点会因机械弹性产生5~20ms 的高频弹跳(抖动),直接导致 GPIO 引脚的电平快速跳变

  • 但是我们stm32U5的KEY按键都并联了电容电路,电容具有滤波效果,可以通过充放电 “吸收” 抖动信号,从而平滑掉高频抖动,输出相对稳定的高低电平。这就是硬件消抖的方式。

  • 按键按下抬起的波形通过IO引脚输入到GPIO中,经过施密特触发器进行整形后,波形如下(绿色方波信号):

  • 下面通过逻辑分析仪得到的PC9和PC13引脚的电平信号,紫色为按键按下时,绿色表示PC13引脚电平发生了多次的跳变。

按键消抖

这里按键消抖并不是实际意义上的消抖,而是按键按下时触发一次操作的优化处理

​​​​​​​延时消抖
while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 *///读PC9电平状态,如果是低电平,说明按键按下,让灯进行反转if(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_9) == 0){HAL_Delay(100);if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9)== 0)//让PC13(LD3)实现电平反转(灯的亮灭)HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);}}

​​​​​​​抬手检测

代码实现:

while(1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 *///抬手检测if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9)==0){//循环判断按键状态,抬起时反转while(!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9));HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);}}


http://www.jsqmd.com/news/204265/

相关文章:

  • 从零构建Docker威胁狩猎能力,掌握这8类高危行为检测规则就够了
  • 贪心算法正确性证明:VibeThinker构建严谨推理链
  • 揭秘Docker跨平台构建:如何用Buildx实现一次构建全平台部署
  • EI会议!【即将截稿】2026年大湾区具身智能论坛(EI-OAHV 2026)
  • 优秀的GEO服务商多引擎技术分析 - 2026年企业推荐榜
  • 【稀缺技术揭秘】:企业级Docker镜像缓存策略,仅1%工程师掌握
  • 揭秘通信技术:电信号传输、通信划分、串口通信
  • 【Docker故障恢复终极指南】:9个高频场景的应急处理方案
  • SPI通信:高效同步串行接口解析、软硬件spi
  • 别再手动分配流量了!5步实现Docker微服务自动负载均衡
  • VibeThinker-1.5B的局限性有哪些?开发者必须知道的事
  • 如何用Docker实现毫秒级服务发现与动态负载均衡?一线大厂架构师亲授
  • 苏州会议餐配送/苏州盒饭配送/苏州工作餐配送哪家好?2026年苏州餐饮公司实力盘点 - 栗子测评
  • 地理空间数据分析:处理经纬度坐标与区域划分问题
  • Docker多容器日志集中处理方案(ELK+Fluentd实战落地)
  • ‌低代码AI测试平台实操教程
  • 计算机网络MTU分片问题:VibeThinker计算传输效率
  • 系统学习screen指令:全面讲解参数选项与实际场景
  • 2025年乌鲁木齐装修公司权威推荐榜单:新房装修/别墅装修/装修质量/装修价格/装修全包本地服务商精选 - 品牌推荐官
  • HBuilderX与Android Studio协同配置:Windows实战说明
  • 2026年 电线电缆回收厂家权威推荐榜:废旧电缆/工程剩余电缆/二手电线电缆专业回收服务深度解析 - 品牌企业推荐师(官方)
  • 新定义问题(24年甘肃兰州中考真题)
  • 网盘直链下载助手流行背后,是开发者对高效资源的渴求——如同VibeThinker
  • 企业能否用VibeThinker降本增效?适用场景与限制分析
  • ‌AI赋能安全测试:漏洞检测新方法
  • 2026年热门的电动堆高车厂家推荐 - 栗子测评
  • 2026年口碑好的白光干涉仪厂家推荐,靠谱供应商与专业技术企业全解析 - myqiye
  • Web前端也能玩转大模型?结合VibeThinker实现智能代码补全
  • 【架构师私藏干货】:构建稳定Docker多容器环境的6大黄金法则
  • 实测VibeThinker-1.5B:用英语提问提升算法解题准确率