#include "keyboard.h"
int KeyBoard_Mange(void) //实现矩阵键盘。返回值为各按键的键值此键值由用户自己定义。
{
int KeyVal=0; //keyVal为最后返回的键值。
// u16 WriteVal=0; //WriteVal为要写给PB口的数据。
GPIOB->ODR |= 0x000f; //先让PB0到PB3全部输出高。
if((GPIOB->IDR & 0x00f0)==0x0000) //如果PB4到PB7全为0则没有键按下。此时返回值为-1.
return -1;
else
{
HAL_Delay(5); //延时5ms去抖动。
if((GPIOB->IDR & 0x00f0)==0x0000) //如果延时5ms后PB4到PB7又全为0则刚才引脚的电位变化是抖动产生的.
return -1;
else
{
GPIOB->ODR &= 0xfff0;
GPIOB->ODR |= 0x0008; //让PB3到PB0输出二进制的1000.
HAL_Delay(1); //稳定输出
switch(GPIOB->IDR & 0x00f0) //对PB4到PB7的值进行判断以输出不同的键值。
{
case 0x0080: KeyVal=1; break;
case 0x0040: KeyVal=2; break;
case 0x0020: KeyVal=3; break;
case 0x0010: KeyVal=4; break;
}
while((GPIOB->IDR & 0x00f0)!=0x0000);
GPIOB->ODR &= 0xfff0;
GPIOB->ODR |= 0x0004; //让PB3到PB0输出二进制的0100.
HAL_Delay(1); //稳定输出
switch(GPIOB->IDR & 0x00f0) //对PB4到PB7的值进行判断以输出不同的键值。
{
case 0x0080: KeyVal=5; break;
case 0x0040: KeyVal=6; break;
case 0x0020: KeyVal=7; break;
case 0x0010: KeyVal=8; break;
}
while((GPIOB->IDR & 0x00f0)!=0x0000);
GPIOB->ODR &= 0xfff0;
GPIOB->ODR |= 0x0002; //让PB3到PB0输出二进制的0010.
HAL_Delay(1); //稳定输出
switch(GPIOB->IDR & 0x00f0) //对PB4到PB7的值进行判断以输出不同的键值。
{
case 0x0080: KeyVal=9; break;
case 0x0040: KeyVal=10; break;
case 0x0020: KeyVal=11; break;
case 0x0010: KeyVal=12; break;
}
while((GPIOB->IDR & 0x00f0)!=0x0000);
GPIOB->ODR &= 0xfff0;
GPIOB->ODR |= 0x0001; //让PB3到PB0输出二进制的0001.
HAL_Delay(1); //稳定输出
switch(GPIOB->IDR & 0x00f0) //对PB4到PB7的值进行判断以输出不同的键值。
{
case 0x0080: KeyVal=13; break;
case 0x0040: KeyVal=14; break;
case 0x0020: KeyVal=15;break;
case 0x0010: KeyVal=16; break;
}
while((GPIOB->IDR & 0x00f0)!=0x0000);
}
}
return KeyVal;
}
STM32 4X4按键
需积分: 15 3 浏览量
2018-10-22
18:15:28
上传
评论
收藏 1KB ZIP 举报
qq_28383295
- 粉丝: 0
- 资源: 3
最新资源
- 边缘计算在计算机视觉系统中的应用与挑战.pptx
- 20240419上位机替换文件.zip
- 运营商物联网业务发展模式.docx
- Spring框架在IDEA中零基础配置并例题演示(使用最原始方法)
- 运营商的互联网新思维.docx
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- 基于AT89C51 & DS18B20的温度采集proteus仿真设计.rar
- 运营商网络运营大数据应用实践研究.docx
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈