概述
5D摇杆模块(HAL)
- 基本配置
- 代码
基本配置
5D摇杆模块具有8个引脚,一个COM公共端,可以接GND或者VCC,剩下7个引脚分别为UP,DWN,LFT,RHT,MID,SET,RST,在对应按键按下后相应引脚会输出COM端所接电平。
代码
本代码引用正点原子按键例程代码。
首先是头文件
#ifndef __KEY_H
#define __KEY_H
#include "sys.h"
//下面的方式是通过直接操作 HAL 库函数方式读取 IO
#define UP HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_9) //UP 按键 PG9
#define DWN HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_10) //DWN 按键 PG10
#define LFT HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_11) //LFT 按键 PG11
#define RHT HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_12) //RHT 按键 PG12
#define MID HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_13) //MID 按键 PG13
#define SET HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_14) //SET 按键 PG14
#define RST HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_15) //RST 按键 PG15
#define UP_PRES 1
#define DWN_PRES 2
#define LFT_PRES 3
#define RHT_PRES 4
#define MID_PRES 5
#define SET_PRES 6
#define RST_PRES 7
void KEY_Init(void); //IO 初始化
u8 KEY_Scan(u8); //按键扫描函数
#endif
之后是源文件
引脚采用上拉输入,COM接GND,检测引脚低电平
#include "5d_key.h"
#include "delay.h"
//按键初始化函数
void KEY_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOG_CLK_ENABLE();
/*Configure GPIO pins : PG9 PG10 PG11 PG12
PG13 PG14 PG15 */
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12
|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
}
//按键处理函数
//返回按键值
//mode:0,不支持连续按;1,支持连续按;
//0,没有任何按键按下
//1,WKUP 按下 WK_UP
//注意此函数有响应优先级,RST>DWN>LFT>RHT>MID>SET>UP
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1; //按键松开标志
if(mode==1)key_up=1; //支持连按
if(key_up==1&&(UP==0||DWN==0||LFT==0||RHT==0||MID==0||SET==0||RST==0))
{
delay_ms(10);
key_up=0;
if(RST==0) return RST_PRES;
else if(DWN==0) return DWN_PRES;
else if(LFT==0) return LFT_PRES;
else if(RHT==0) return RHT_PRES;
else if(MID==0) return MID_PRES;
else if(SET==0) return SET_PRES;
else if(UP==0) return UP_PRES;
}
else if(UP==1&&DWN==1&&LFT==1&&RHT==1&&MID==1&&SET==1&&RST==1)key_up=1;
return 0; //无按键按下
}
最后
以上就是缓慢皮带为你收集整理的5D摇杆模块(HAL)基本配置代码的全部内容,希望文章能够帮你解决5D摇杆模块(HAL)基本配置代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复