登录/注册

stm32按键亮灯

更多

以下是一个基于STM32的按键控制LED的简单实现示例(使用HAL库):


硬件连接

  1. 按键:连接至GPIO引脚(如PA0),配置为上拉输入模式(按键另一端接地,按下时引脚电平拉低)
  2. LED:连接至GPIO引脚(如PC13),配置为推挽输出模式,串联220Ω限流电阻

代码实现

#include "main.h"

// 引脚定义
#define BUTTON_PIN  GPIO_PIN_0
#define BUTTON_PORT GPIOA
#define LED_PIN     GPIO_PIN_13
#define LED_PORT    GPIOC

int main(void) {
  HAL_Init();
  SystemClock_Config();

  // GPIO初始化
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  // 配置按键为上拉输入
  GPIO_InitStruct.Pin = BUTTON_PIN;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  HAL_GPIO_Init(BUTTON_PORT, &GPIO_InitStruct);

  // 配置LED为输出
  GPIO_InitStruct.Pin = LED_PIN;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(LED_PORT, &GPIO_InitStruct);

  while (1) {
    // 检测按键是否按下(低电平)
    if (HAL_GPIO_ReadPin(BUTTON_PORT, BUTTON_PIN) == GPIO_PIN_RESET) {
      HAL_Delay(50);  // 简单消抖
      if (HAL_GPIO_ReadPin(BUTTON_PORT, BUTTON_PIN) == GPIO_PIN_RESET) {
        // 翻转LED状态
        HAL_GPIO_TogglePin(LED_PORT, LED_PIN);
        // 等待按键释放
        while (HAL_GPIO_ReadPin(BUTTON_PORT, BUTTON_PIN) == GPIO_PIN_RESET);
      }
    }
  }
}

关键说明

  1. 消抖处理:通过HAL_Delay(50)消除机械按键的抖动干扰
  2. 状态翻转:使用HAL_GPIO_TogglePin()实现LED亮灭切换
  3. 按键释放检测while循环确保松开按键后才执行下一次操作
  4. 引脚配置:根据实际硬件修改BUTTON_PIN/LED_PIN等宏定义

进阶优化

建议通过STM32CubeMX生成初始化代码,再添加业务逻辑部分。如果LED响应异常,请检查硬件连接和GPIO模式配置。

在测试STM328S103K3T6的按键控制灭时,有些会自动,为什么?

在测试STM328S103K3T6的按键控制灯亮灭时,有些会自动

2024-04-03 07:15:54

STM32按键控制LED的

使用一个按键控制LED的亮灭,按键按下时LED亮起,按键松开时LED熄灭

2023-12-11 14:19:33

stm32按键控制led

stm32按键控制led灯亮灭  在嵌入式系统中,硬件

2023-09-02 17:05:41

基于stm32按键控制led

基于stm32的按键控制led亮灭资料文件分享

资料下载 19102344 2022-09-21 15:50:15

STM32——不同的按键对应实现不同功能的闪烁

STM32——不同的按键对应实现不同功能的灯闪烁功能介绍程序解读总结功能介绍本程序使用

资料下载 张览秀 2022-01-13 12:44:10

STM32————按键实现控制LED

按键控制LED灯分两种情况1:按下一亮,直到第二次按下熄灭2:按一下常亮

资料下载 刘埃生 2021-12-27 18:25:35

STM32F103实验二:按键控制LED

STM32单片机按键控制LED亮灭。

资料下载 佚名 2021-12-16 16:55:35

EXTI:通过按键中断控制led

介绍EXTI的使用方法及基本原理并且包括实验通过按键中断控制led灯的亮灭

资料下载 挽你何用 2021-11-23 18:06:19

使用51单片机实现按键控制LED

接前两集,这集我们实现用按键控制LED灯的亮灭。首先,仍旧是分析硬件电路原理图。

2023-07-11 11:40:45

按键来控制LED

用按键来控制LED灯的亮灭。按键接在PC4口,LED

2022-01-17 08:02:47

如何利用Stduino通过按键控制LED

2020/01/06 星期一作者:Astilbe问题:如何利用Stduino通过按键控制LED灯亮灭。我们已经学习过怎么点亮一颗LED

2022-01-05 07:52:21

如何使用STM32固件库通过按键来控制led灭?

如何使用STM32固件库通过按键来控制led灯的亮灭?

2021-11-23 07:41:20

如何利用STM32CubeMX按键实现外部中断控制LED灭?

如何利用STM32CubeMX按键实现外部中断控制LED灯亮灭?

2021-11-17 07:00:29

利用按键控制LED

STM32F4工程--IO口--按键控制点灯程序(库函数) ----芯片:STM32F429IGT6本文章介绍使用

2021-08-24 07:18:32

只有一个按键,当按键短按的时候,1,当按键长按的时候,2,不想使用定时器或者中断函数

现在只有一个按键,当按键短按的时候,灯1亮,当

2019-06-24 04:35:47
7天热门专题 换一换
相关标签