STM32之旅2——按键

    几乎每个项目都有用到按键,为了避免以后在做大项目的时候还在琢磨按键怎么写,现在写一个,方便以后使用。这里是最简单的独立按键驱动方法,和学习51单片机是的一样,更好的方法以后再慢慢补充。

按键驱动

drv_key.h:

#ifndef __DRV_KEY_H
#define __DRV_KEY_H #define RESET 0
#define SET 1 #define WK_UP_PIN GPIO_PIN_0
#define WK_UP_PORT GPIOA #define KEY1_PIN GPIO_PIN_5
#define KEY1_PORT GPIOC #define KEY2_PIN GPIO_PIN_15
#define KEY2_PORT GPIOA #define WK_UP HAL_GPIO_ReadPin(WK_UP_PORT,WK_UP_PIN)
#define KEY1 HAL_GPIO_ReadPin(KEY1_PORT,KEY1_PIN)
#define KEY2 HAL_GPIO_ReadPin(KEY2_PORT,KEY2_PIN) void key_scan(void); #endif

drv_key.c:

#include "stm32f1xx.h"
#include "drv_led.h"
#include "drv_key.h" void key_scan(void)
{
if(RESET == KEY1)
{
HAL_Delay(10); //消抖
if(RESET == KEY1)
{
/********事件区***********/
LED1_ON;
/********事件区***********/
while(RESET == KEY1); //松手反应
}
} if(RESET == KEY2)
{
HAL_Delay(10); //消抖
if(RESET == KEY2)
{
/********事件区***********/
LED2_ON;
/********事件区***********/
while(RESET == KEY2); //松手反应
}
}
}

STM32之旅2——按键的更多相关文章

  1. STM32之旅5——IWDG

    STM32之旅5--IWDG stm32有两个看门狗,一个独立看门狗(IWDG).一个窗口看门狗(WWDG):独立看门狗是时钟源是内部的40kHz的低速时钟,即使主频出问题了,独立看门狗也不会受到影响 ...

  2. STM32之旅4——USART

    STM32之旅4--USART 串口也是用的比较多的,在STM32CubeMX中生成代码后,需要添加一些代码才可以用. drv_usart.h: #ifndef __DRV_USART_H #defi ...

  3. STM32之旅3——时钟数

    STM32之旅3--时钟数 STM32F1是M3内核,它的时钟数很庞大,让一个初学者去看,估计会很吃力,和我们入门的8051单片机的时钟不同,这里又倍频.又分频,而且还分成好多个时钟,不同的外设时钟不 ...

  4. STM32之旅1——LED

    STM32之旅1--LED 学习了51单片机后,就要接触到更高级一点的单片机了,比如STM32,ST也有很多款单片机,现在用比较基础的学习--STM32F103RCT6. LED驱动 hal库的使用比 ...

  5. STM32之旅6——WWDG

    WWDG是stm32f103的窗口看门狗,使用的时钟是APB1的时钟,在使用wwdg是被一个小问题困扰了很久--没有打开中断,无法喂狗,一直复位. 初始化完之后需要使能中断: __HAL_WWDG_E ...

  6. stm32开发笔记(三):stm32系列的GPIO基本功能之输出驱动LED灯、输入按键KEY以及Demo

    前言   stm32系列是最常用的单片机之一,不同的版本对应除了引脚.外设.频率.容量等'不同之外,其开发的方法是一样的.  本章讲解使用GPIO引脚功能驱动LED灯和接收Key按钮输入.   STM ...

  7. stm32按键识别

    刚写了一个关于stm32单片机的按键识别的程序.目的,同时识别多个按键,并且不浪费cpu的时间. 关于去抖动,以前以为是在按键的时候,手会抖动.通过程序验证,这个确实是误解.这个应该是防止意外干扰.以 ...

  8. STM32按键控制程序

    由于最近时间比较匆忙 已经有很久的时间没有写博客了 这次和大家分享的是STM32的一个按键的小程序 他的优点呢也是和上面一个LED一样就是便于移植 更改管脚方便 虽然都是些小程序 但是我觉得他们就像基 ...

  9. stm32按键FIFO的实现

    学习目标: 1.理解FIFO的基本概念和设计按键FIFO的意义   2.写出实现按键FIFO的代码 1.设计按键FIFO的优点 要介绍实现按键FIFO的优点,首先要了解FIFO的一些基本概念.FIFO ...

随机推荐

  1. 用android studio多渠道打包

    1. 官方教程 https://developer.android.com/studio/build/build-variants.html 2. 设置Build Types参数 打开 Project ...

  2. beautifulsoup教程

    beautifulsoup教程 BeautifulSoup4是爬虫必学的技能.BeautifulSoup最主要的功能是从网页抓取数据,Beautiful Soup自动将输入文档转换为Unicode编码 ...

  3. 条件竞争(race condition)

    条件竞争漏洞是一种服务器端的漏洞,由于服务器端在处理不同用户的请求时是并发进行的,因此,如果并发处理不当或相关操作逻辑顺序设计的不合理时,将会导致此类问题的发生. 参考了一些资料,发现一个比较能说明问 ...

  4. Maven 仓库镜像设置

    <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>al ...

  5. C:获取屏幕输入

    代码: #include "stdafx.h" #include "stdio.h" int _tmain(int argc, _TCHAR* argv[]) ...

  6. Agumaster 改善了pagination

    页面越来越完善了.

  7. adb安装apk包提示protocol failure问题

    截图来自CSDN,待验证

  8. 循环删除list的方法

    错误的方法: 正确的方法:

  9. 猜数字 python 3

    随机选取一个1-100的整数 通过5次机会猜整数 会提醒猜大或者猜小 当猜对或者已经猜过5次后结束游戏

  10. 秒懂JVM的三大参数类型,就靠这十个小实验了

    秒懂JVM的三大参数类型,就靠这十个小实验了 你好,我是悟空哥,「7年项目开发经验,全栈工程师,开发组长,超喜欢图解编程底层原理」.手写了2个小程序,Java刷题小程序,PMP刷题小程序,已发布到公众 ...