STM32按键控制LED灯-HAL库

news2024/11/25 18:53:22

前言

空窗了一年,重头再来点个灯吧,本篇文章将主要给大家讲解按键点灯

一、原理图设计

LED0-LED2 --------> PA0-PA2引脚

KEY1 ---------> PA3引脚

二、CubeMX的设置

LED选择GPIO一次将PA0、PA1、PA2设置为GPIO_Output,输出电平为低电平Low
key1选择GPIO将PA3设置为GPIO_Input,引脚设置为上拉Pull-up

 三、代码调试

main.c

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
uint8_t Key_val = 0; //定义全局变量,用来存键盘的返回值

uint8_t Key_scan(void)
{
	uint8_t key_val = 0; //定义返回值变量
	/*读取引脚角度状态*/
	if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_3) == 0 ) //当按键按下时,电平为0
	{
		HAL_Delay(10);//消抖
		if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_3) == 0 ) //检测按键松手情况
		{
			key_val =1;
		}
	}
	return key_val;
}
/* USER CODE END 0 */
while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		Key_val = Key_scan(); //不断读取建码值,放在定义的全局变量Key_val里
		if(Key_val == 1)
		{
			HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET);  //高电平 亮
            HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
            HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET);
		}
		else
		{
			HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET); //低电平 灭
            HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_RESET);
		}
  }
  /* USER CODE END 3 */
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/824302.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录

1、注册https://issues.sonatype.org/账号 下面就代表注册好了,同时提交的工单也通过了 2、这里主要是goupId 需要进行认证,需要到域名注册商近一个txt的解析,以便确保这个是你的 通过下面来验证你的域名信息,这里主要是上面的工…

Permute 3 for mac音视频格式转换

Permute是一款Mac平台上的媒体格式转换软件,由Chaotic Software开发。它可以帮助用户快速地将各种音频、视频和图像文件转换成所需格式,并提供了一些常用工具以便于用户进行编辑和处理。 Permute的主要特点包括: - 支持大量格式:支…

工程监测仪器振弦传感器信号转换器(VTI104_DIN)

工程监测仪器振弦传感器信号转换器(VTI104_DIN) 振弦传感器信号转换器,简称VTI104_DIN,是一种用于转换振弦传感器信号的电子设备。该设备可以将振弦传感器产生的模拟信号转换成标准的电压或电流输出,从而使其可以连接…

将网盘挂载到本地保姆级教程

视频链接:https://www.bilibili.com/video/BV1SA411B7qc Clouddrive2:是一款非常实用的国内网盘服务挂载应用。它支持多种国内知名网盘服务,包括阿里云盘、115云盘、天翼云盘等。通过CloudDrive 2,你可以将这些网盘服务挂载到你的…

中级课程——弱口令(认证崩溃)

文章目录 什么是弱口令密码生成器分类暴力破解万能密码测试环境工具 什么是弱口令 密码生成器 分类 暴力破解 万能密码 or true --测试环境 工具 九头蛇,超级弱口令爆破工具,bp,

Redis的键空间监听功能

文章目录 Redis 键空间通知一、keyspace介绍二、事件通知配置三、不同命令生成的事件四、客户端测试五、Springboot整合Redis键空间监听5.1 方式一5.2 方式二 Redis 键空间通知 一、keyspace介绍 keyspace(键空间通知)针对指定key发生的一切改动&#…

香港三维模型:基于GIS数据的精确三维城市模型及其周边2023年

基于GIS数据的精确三维城市模型及其周边2023年 包含的文件: 满城:15公里 信息: 仅在影院4D中设置基本卫星纹理 包含卫星/地图纹理 影院制作4d,可在标准渲染器中进行渲染 漫步建筑、树木(mograph cloner&#xff…

【无标题】JSP--Java的服务器页面

jsp是什么? jsp的全称是Java server pages,翻译过来就是java的服务器页面。 jsp有什么作用? jsp的主要作用是代替Servlet程序回传html页面的数据,因为Servlet程序回传html页面数据是一件非常繁琐的事情,开发成本和维护成本都非常高…

虹科活动 | 走进宇通客车-汽车新供应链技术展精彩回顾

引言 7月27日,走进宇通客车-汽车新供应链技术展于宇通研发中心成功举办,本次展会中虹科为大家带来了一体化车载天线与车辆GNSS仿真测试方案,感谢您前来探讨与交流! 精彩产品一览 车辆GNSS仿真测试方案 虹科高性能GNSS模拟器具有灵…

【二叉树进阶】二叉树经典面试题——最近公共祖先问题

文章目录 1. 二叉树的最近公共祖先1.1 思路1(转换为链表相交问题)1.2 链表相交问题讲解1.3 思路21.4 思路2AC代码 2. 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先2.1 思路分析2.2 AC代码 3. 普通二叉树求最近公共祖先的优化-转化为路径相交的问题3.1 思…

国产DSP,C2000,QX320F280049,打破TI垄断,支持国产

数字电源,光伏逆变器,微电机,充电桩,家电,机器人专用

Python绘图坐标系映射,对数坐标系

文章目录 对数坐标系自定义映射对数坐标图 对数坐标系 在实际绘图时,如果 x , y x,y x,y这两轴的数据变化速率相差过多,线性的坐标映射将无法展示图形变化的细节,就需要更改坐标系的数字映射逻辑,以获得更具细节的图像。 在matp…

【华为HCIP | 高级网络工程师】刷题日记(11)

个人名片: 🐼作者简介:一名大二在校生,喜欢编程🎋 🐻‍❄️个人主页🥇:落798. 🐼个人WeChat:见文末 🕊️系列专栏:🖼️ 零…

pycharm bash: 第 0 行: cd: xxxxxxx: 没有那个文件或目录

设置里面的python接口,path mappings 是空的,设置好本地机器和远程机器所对应的目录就好了。如下图:

【100天精通python】Day23:正则表达式,基本语法与re模块详解示例

目录 专栏导读 1 正则表达式概述 2 正则表达式语法 2.1 正则表达式语法元素 2.2 正则表达式的分组操作 3 re 模块详解与示例 4 正则表达式修饰符 专栏导读 专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html 1 正则表达式概述 python 的…

24考研数据结构-第四章:串

目录 第四章:串4.1串的定义和实现4.1.1串的定义4.1.2串的基本操作字符集编码 4.1.3串的存储结构1. 定长顺序存储表示基本操作实现(基于方案四) 2. 堆分配存储表示3. 串的链式存储结合链表思考优缺点 知识回顾 4.2串的模式匹配4.2.1朴素模式匹…

ChatGPT辅助写论文:提升效率与创造力的利器

写作是人类最重要的交流方式之一,也是学术研究中不可或缺的环节。然而,写作并不是一件容易的事情,尤其是对于科研人员来说,他们需要花费大量的时间和精力来撰写高质量的论文,并且面临着各种各样的挑战,如语…

用栈实现队列——数据结构与算法

😶‍🌫️Take your time ! 😶‍🌫️ 💥个人主页:🔥🔥🔥大魔王🔥🔥🔥 💥代码仓库:🔥🔥魔…

Flowable-子流程-事务子流程

目录 定义图形标记XML内容使用示例视频教程 定义 事务子流程也称作事务块,是一个嵌入式子流程,用来处理一组必须在同一个事务中完成的活 动,使它们共同成功或失败。事务子流程中如果有一个活动失败或者取消,整个事务子流程的所有…

<C++> 四、模板初阶

1.泛型编程 泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。 如何实现一个通用的交换函数呢?使用函数重载可以实现 void Swap(int &left, int &right) {int temp left;left right;right temp; …