题目:

利用STM32CubeMX和lKeil5进行STM32应用开发,完成以下的功能。                                    【1】按下KEY1按键,切换LED1的开关状态。

【2】按下KEY2按键,松开后,切换LED2的开关状态。                                                          【3】按下KEY4按键,把点亮的LED灯全部关闭。

        按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定接通或一下子断开, 使用按键时会产生如图中的带波纹信号,不会马上稳定地接通,在断开时也不会一下子断开,因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖,需要用软件消抖处理滤波。
#include "main.h"
#include "gpio.h"/* USER CODE BEGIN PTD */
#define KEY1 HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_0)
#define KEY2 HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)
#define KEY4 HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_3) //按键读取宏定义void Key_Scan()
{if(KEY1 == 0){ HAL_Delay(10);if(KEY1==0){HAL_GPIO_TogglePin(GPIOD,GPIO_PIN_3);while(KEY1==0);}       }if(KEY2==0){HAL_Delay(10);if(KEY2==0){while(KEY2==0);//按键按下时等待,松开后动作HAL_GPIO_TogglePin(GPIOD,GPIO_PIN_4);}}if(KEY4==0){HAL_Delay(10);if(KEY4==0){HAL_GPIO_TogglePin(GPIOD,GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6);//可以同时反转多个引脚while(KEY4==0);}}
}
int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();/* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE */Key_Scan();//调用/* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}

按键控制LED灯开关相关推荐

  1. CC2530按键控制LED灯开关

    文章目录: 实验要求 代码实现 实验要求 代码实现 #include "ioCC2530.h"#define D3 P1_0 #define D4 P1_1 #define D5 ...

  2. 实现米思齐按键控制LED灯

    这篇文章是关于Arduino借助Mixly IDE软件的一个实验,有兴趣的同学可以看看.有什么错误的还请大家指出,我们一起探讨.由于很多人对于Arduino还不太了解,所以这里先简单介绍一下. 1.A ...

  3. 按键控制led灯python程序_树莓派使用threading函数实现多按键控制LED灯

    讲两个知识点.一个是关于上拉和下拉,另一个是关于threading函数. 1.上拉电阻和下拉电阻 上拉就是把一个不确定的信号通过一个电阻连接到高电位,这样在开关断开是信号为高电位,开关合上时信号为低电 ...

  4. FPGA(1)基础入门 -- 按键控制led灯

    目录 效果说明 1.配置输入输出变量 2.变量赋值 3.配置引脚(输入输出变量) 代码 效果说明 key1按键按下,led1被点亮. key2按键按下,led2被点亮. 1.配置输入输出变量 inpu ...

  5. led计数电路实验报告_「正点原子FPGA连载」第八章 按键控制LED灯实验

    1)实验平台:正点原子开拓者FPGA开发板 2)本实例源码下载:请移步正点原子官网 第八章 按键控制LED灯实验 按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等 ...

  6. STM32按键控制led四种方法

    文章目录 回顾按键电路 按照之前文章方法在工程文件下加入Hardware中的key.c和key.h 打开固件库用户手册查询io读取相关的函数 第一种方式实现按键控制 第二种方式实现按键控制led 第三 ...

  7. 8个独立按键控制LED

    8个独立按键控制LED

  8. 按键控制LED实现启动、停止按钮

    按键控制LED实现启动.停止按钮

  9. 简单的按键控制LED

    简单的按键控制LED

  10. petalinux zynq spi_ZYNQ 系列 01 | PL 实现按键控制 LED(1)

    注:本篇文章由[开源骚客:OpenSoc]公众号首发,现转载至头条号. 新的开始,这一篇文章,就算是使用 Vitis 开发 ZYNQ 的第一篇文章吧. 计划把 ZYNQ 开发写成一个系列,所使用的的软 ...

最新文章

  1. 为何Google将几十亿行源代码放在一个仓库?| CSDN博文精选
  2. 关闭线程池 shutdown 和 shutdownNow 的区别
  3. oracle的scn增量备份,Oracle技术之利用scn增量备份实现数据库增量恢复
  4. GARFIELD@04-30-2005
  5. 转载:闲话权限设计三层境界
  6. Spark源码分析 -- SchedulableBuilder
  7. 前端基础进阶(二):执行上下文详细图解
  8. jquery html5引导页,jQuery插件实现的页面功能介绍引导页效果
  9. Android按back后执行过程,安卓app测试获取接口返回数据,然后处理数据,放在一个button点击事件里面 执行顺序有问题?无法获取数据?...
  10. 通过CentOS克隆虚拟机后发现无法启动网卡或无法上网的解决办法
  11. 正向代理 smtp imap_Nginx代理模式及区别
  12. 五子棋初步以及对五子棋的局面估值
  13. 服务器运维KPI指标,运维服务工程师考核表.docx
  14. docker编配和服务发现
  15. Codeforces1538G Gift Set (三分)
  16. 观光公交(codevs 1139)题解
  17. 数据库常用字段、列属性、表类型与SQLyog工具的使用
  18. RoboCup GameController安装方法
  19. padStart 和 padEnd的使用
  20. Yolo系列目标检测算法知识点总结

热门文章

  1. 服务器ping不通,但是远程桌面可以连接上
  2. 家用无线路由器哪个品牌好?程序员分享值得推荐的无线路由器
  3. RxSwift 介绍与简单使用
  4. python三阶魔方_三阶魔方自动求解及动态可视化matlab代码
  5. 抛弃Telemetry,用Faythe连接OpenStack和Prometheus
  6. 正则表达式详解(贪婪与懒惰、前瞻与后顾、后向引用等)
  7. .NET在蹉跎中一路前行1
  8. html页面跳转传值原生,html页面跳转传递参数问题
  9. 华为手机长按图片无法下载
  10. 学好水彩,给自己做个手机壳吧