首页 > 其他分享 >003:通过按键控制LED亮灭

003:通过按键控制LED亮灭

时间:2024-10-29 21:45:43浏览次数:3  
标签:LED 亮灭 PIN 003 GPIOA InitStructure 按键 GPIO

这里我就单纯的展示下通过按键控制LED亮灭的方法,不考虑按键消抖和其他的问题。

话不多说直接展示代码:

#include "stm32f10x.h"                  // Device header
#define LED_PIN GPIO_Pin_5 // 假设LED连接到GPIOA的第5个引脚
#define BUTTON_PIN GPIO_Pin_1 // 假设按键连接到GPIOA的第1个引脚
// 初始化GPIO
void GPIO_Init1(void) {
    GPIO_InitTypeDef GPIO_InitStructure;

    // 使能GPIOA时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    // 配置LED引脚为推挽输出
    GPIO_InitStructure.GPIO_Pin = LED_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    // 配置按键引脚为上拉输入
    GPIO_InitStructure.GPIO_Pin = BUTTON_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

int main(void) {
    GPIO_Init1(); // 初始化GPIO
    while (1) {
        if (GPIO_ReadInputDataBit(GPIOA, BUTTON_PIN) == 0) { // 检测按键是否按下
            GPIO_WriteBit(GPIOA, LED_PIN, Bit_RESET); // 按键按下,LED亮起
        } else {
            GPIO_WriteBit(GPIOA, LED_PIN, Bit_SET); // 按键未按下,LED熄灭
        }
    }
}

代码仿真,运行结果如下:

希望这篇教程可以帮到你

标签:LED,亮灭,PIN,003,GPIOA,InitStructure,按键,GPIO
From: https://blog.csdn.net/K_1271/article/details/143350776

相关文章

  • ScheduledThreadPoolExecutor的介绍与使用
    ScheduledThreadPoolExecutor是Java中的一个类,它继承自ThreadPoolExecutor,并实现了ScheduledExecutorService接口。这个类主要用于在给定的延迟之后或周期性地执行任务,是处理定时任务的一个强大工具。一、主要特点线程池大小固定:ScheduledThreadPoolExecutor的线程池大小......
  • QILSTE H8-316QHR高亮红光LED灯珠 发光二极管LED
    在电子组件的多彩世界中,H8-316QHR以其鲜明的高亮红光脱颖而出。这款LED,尺寸紧凑至3.2x1.5x0.8mm,却蕴含着强大的性能。它不仅符合EIA规范标准包装,更是环保的ROHS合规产品,防潮等级达到Level3,完美适配SMT组装和焊接工艺。**技术参数的深度剖析**深入探讨H8-316QHR的心脏——技......
  • QILSTE H8-316QFO高亮橙光LED灯珠 发光二极管LED
    在电子组件的璀璨星河中,H8-316QFO以其独特的高亮橙光在众多LED中脱颖而出。这款LED,尺寸仅为3.2x1.5x0.8mm,却蕴含着巨大的潜力。它不仅符合EIA规范标准包装,更是环保的ROHS合规产品,防潮等级达到Level3,完美适配SMT组装和焊接工艺。**技术参数的深度剖析**让我们深入探讨H8-316Q......
  • ImportError: DLL load failed while importing _errors: The specified procedure co
    importh5pyImportError:DLLloadfailedwhileimporting_errors:Thespecifiedprocedurecouldnotbefound. ImportError                              Traceback(mostrecentcalllast)CellIn[2],line1---->1importh5pyFile......
  • C#“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决方案
    当使用C#语言连接Access数据库时,即使安装有64位版本的Office,也会出现“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。”这个问题。从Office2016开始,困扰了我好多年。以往的解决之道(也是网上给出的方法)是:1、彻底卸载并安装32位的Office2、更改注册表、数据库等......
  • MBI6671Q聚积升降压LED驱动芯片车规级认证AEC-Q100认证
    引言: MBI6671Q是由聚积(Macroblock)公司推出的一款多拓扑恒流控制器,专为驱动高亮度LED设计。它广泛应用于汽车照明等需要高效、可靠和灵活控制的领域,特别是在高功率LED照明场景中。主要特点:1.宽输入电压范围:MBI6671Q支持5.4V至65V的宽输入电压范围,使其能够适应多种电源环境......
  • FPGA实例——点亮led
    前言:Helloworld!这句代码大家都很熟悉吧,作为学习C语言的开始,逐渐的进入代码的世界。那么对于硬件来说,点灯也就是梦的开始,无论是单片机还是FPGA等等。有句话说得好,当你学会点灯的时候那么你就已经开始入门了哈哈哈。当然,硬件的话不比得软件,想要真正的入门还得通过不断地学习......
  • 洛谷P1045 [NOIP2003 普及组] 麦森数
    形如 2P−12P−1 的素数称为麦森数,这时 PP 一定也是个素数。但反过来不一定,即如果 PP 是个素数,2P−12P−1 不一定也是素数。到1998年底,人们已找到了37个麦森数。最大的一个是 P=3021377P=3021377,它有909526位。麦森数有许多重要应用,它与完全数密切相关。任务:输......
  • qt标题,解决title的png图片scaled后显示有明显锯齿
    一、通用方法(使用Qlabel)//添加窗口图标iconLabel=newQLabel(this);QPixmapiconPixmap(":/ico.png");//替换成你的图标文件路径iconLabel->setPixmap(iconPixmap.scaled(125,35,Qt::KeepAspectRatio,Qt::SmoothTransformation));iconLayout->addWidget(iconLabel);......
  • 江科大HAL库版本之 3-1LED闪烁
    鉴于自己也在学习嵌入式,为了加强自己对知识的巩固,决定尝试一下把江科大黄学长的实验工程代码HAL库化,也希望能帮助到一些人。顺便借用了B站一位同学的笔记,希望能够理解吧!......