STM32之旅2——按键

发布者:TranquilJourney最新更新时间:2024-08-13 来源: cnblogs关键字:STM32  按键  驱动方法 手机看文章 扫描二维码
随时随地手机看文章

    几乎每个项目都有用到按键,为了避免以后在做大项目的时候还在琢磨按键怎么写,现在写一个,方便以后使用。这里是最简单的独立按键驱动方法,和学习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  按键  驱动方法 引用地址:STM32之旅2——按键

上一篇:STM32之旅4——USART
下一篇:STM32之旅1——LED

推荐阅读最新更新时间:2026-02-16 02:50

STM32 USB转串口驱动安装不成功出现黄色感叹号解决方法
相信很多人在做USB转串口时出现过串口驱动安装不成功,出现黄色感叹号问题, 出现这种问题一般是驱动安装不成功造成的。    这里我就这个问题总结几个简单的方法。 方法1:   插上USB,利用驱动人生安装驱动。 方法2:   先插上USB,去到设备管理器,把驱动卸载,      然后再把USB拔掉,再插上,让电脑自动重新安装驱动,反复几次就可以了。 方法3:   有一种可能是STM32CubeMX分配的堆空间太小造成的,这里改变其大小即可,如下:       方法4:   还有一种原因是STM32F407的VBUS检测功能默认是开启,把该功能关闭即可。    以上就是我遇到过几种USB转串口驱动安装不成功的原因以及解决方
[单片机]
<font color='red'>STM32</font> USB转串口<font color='red'>驱动</font>安装不成功出现黄色感叹号解决<font color='red'>方法</font>!
STM32单片机学习】第12章 GPIO—按键轮询
12.1 关于按键 前面控制LED灯是让GPIO输出高低电平,而获取按键则是读取GPIO电平,从而获知用户是否按下按键。 按键监测一般有两种:按键扫描和按键中断。按键扫描是间隔很短时间反复查询GPIO状态,从而得知是否有按键动作,这种方式代码简单,但比较耗资源。按键中断而是通过按键产生中断信号,从而实现按键的检测,这种方式需要使用到中断机制,需要对MCU了解深入一点,效果是最好的。 本节先介绍按键扫描,理解按键的基本原理,下一章再介绍按键中断,同时了解STM32F103的中断使用方法。 按键一般占用一个GPIO口,通过监测该GPIO的电平变化得知按键操作,典型的电路如图 12.1.1 所示。当所需按键比较多时,则可以采用矩阵按键减
[单片机]
STM32单片机 按键检测&矩阵键盘实操
0.本文主要讲解按键检测 1.来先康康原理图 2.按键检测实操 1.1 原理简述 我们知道 GPIO 的输入输出功能分别可以输出或检测一个引脚的高低电平,即当一个 IO 口作为输出引脚时,将一个引脚的状态设为 1 为高电平设为 0 为低电平,当 IO 作为输入引脚时,此引脚的高低电平状态对应 1 和 0. 1.2 按键对应引脚 那么我们使用学习板上的 KEY0 按键(PA0)进行按键检测的实验。让我们看到原理图 1.3CUBEMX 配置 1.3.1 新建工程就不多说啦~选择自己所用的单片机型号,F401 还是 F411。 1.3.2 时钟配置 配置好是这样的 1.3.3 引脚配置,分别对应按键检测和点亮 LED 灯的
[单片机]
<font color='red'>STM32</font>单片机 <font color='red'>按键</font>检测&矩阵键盘实操
stm32固件库之读取按键
//按键接下拉4.7k 上升沿中断.按键上并联104电容抗抖动 //引脚定义 /*******************************************************/ define KEY1_PIN GPIO_Pin_0 define KEY1_GPIO_PORT GPIOA define KEY1_GPIO_CLK RCC_AHB1Periph_GPIOA define KEY2_PIN GPIO_Pin_13 define KEY2_GPIO_PORT GPIOC define KEY2_GPIO_CLK RCC_AHB1Pe
[单片机]
安富莱 STM32 按键检测
最近看了安富莱的按键检测程序,支持短按,长按,连续触发和组合按键。内部采用 FIFO 来保存触发的按键,保证按键触发不丢失,安富莱的程序稳定,可扩展性强,可以在实际工程中使用。以下记录一些使用上要注意的方面。 在 bsp_key.h 里: #define KEY_COUNT 2 /* 按键个数, 2个独立建*/ KEY_COUNT 代表 实际按键数 + 组合按键数 。 /* 按键滤波时间50ms, 单位10ms。 只有连续检测到50ms状态不变才认为有效,包括弹起和按下两种事件 即使按键电路不做硬件滤波,该滤波机制也可以保证可靠地检测到按键事件 */ #define KEY_FILTER_TI
[单片机]
STM32按键中断应用实例
STM32按键中断(HAL库版) 本文将介绍如何使用STM32F4的IO口作为中断触发源,通过串口显示按键被按下的日志。 1.运用到的资源、工具: 1.1开发板芯片STM32F407,PI9作为外部中断源、USART3串口向屏幕传输信息 1.2编译工具:MDK-ARM V5(keil5) 1.3辅助工具:STM32CubeMX 2.硬件设计 2.1原理图: 3.软件设计 3.1STM32cubeMX配置工程文件 选择Key1作为外部中断源、选择中断触发方式为下降沿触发、并设置中断优先级分组选择优先级 使能USART3串口配置为异步通信 最后生成工程文件 3.2串口输出重定向(重
[单片机]
<font color='red'>STM32</font><font color='red'>按键</font>中断应用实例
STM32库函数开发&按键库函数开发源码篇
LED流水灯 led.h #ifndef __LED_H #define __LED_H #include stm32f4xx.h void Led_Init(void); void Led1_Init(void); void Led2_Init(void); void Led3_Init(void); void Led4_Init(void); #endif typedef struct { uint32_t GPIO_Pin; /* 指定要配置的GPIO引脚 */ GPIOMode_TypeDef GPIO_Mode; /* 指定选定接点的操作模式。*/
[单片机]
stm32单片机按键控制的用法解析
1 /* 2 ::按键控制 3 PA8接LED,PE2接按键 4 */ 5 #include“stm32f10x.h” 6 void RCC_Configuration(void); 7 void GPIO_Config(void); 8 void Delay(__IO uint32_t nCount); 9 10 int main() 11 { 12 RCC_Configuration(); //系统时钟配置|使能GPIO口 13 GPIO_Config(); //LED控制配置 14 while (1) 15 { 16 if(!GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)) 17 { 18
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved