STM32-矩阵键盘程序.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《STM32-矩阵键盘程序.docx》由会员分享,可在线阅读,更多相关《STM32-矩阵键盘程序.docx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、STM32-矩阵键盘程序 44 LtD/*-* 矩阵键盘驱动* 文 件: keyboard.c* 编写人: LiuHui* 描述: 扫描 4x4 矩阵键盘输入,并返回键值* 适用范围: 驱动承受 ST3.5 库编写,适用于STM32F10x 系列单片机* 所用引脚: PA0-PA7* 编写时间: 2021 年 5 月 20 日-*/#include “stm32f10x.h“ #include “keyboard.h“ #include “dealy.h“/*- 矩 阵 键 盘 初 始 化-* 功能: 初始化stm32 单片机 GPIO /PA0-PA7* 参数传递:* 输入: 无* 返回值:
2、无-*/void KeyBoard_Init(void)GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;GPIO_InitStructure.GPIO_Speed= GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode= GPIO_Mode_Out_PP;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GP
3、IO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;GPIO_InitStructure.GPIO_Speed= GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode= GPIO_Mode_IPD;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5
4、 | GPIO_Pin_6 | GPIO_Pin_7);/*-矩 阵 键 盘 扫 描-* 功能: 扫描矩阵键盘,并返回键值* 参数:* 输入: 无* 返回: 有键按下返回该键值* 无键按下时那么返回 0-*/u8 Read_KeyValue(void)u8 KeyValue=0; if(GPIO_ReadInputData(GPIOA)&0xff)!=0x0f)Delay_ms(10); if(GPIO_ReadInputData(GPIOA)&0xff)!=0x0f)GPIO_SetBits(GPIOA, GPIO_Pin_0); GPIO_ResetBits(GPIOA,GPIO_Pin_
5、1|GPIO_Pin_2 | GPIO_Pin_3); switch(GPIO_ReadInputData(GPIOA)&0xff)case 0x11: KeyValue = 1; break; case 0x21: KeyValue = 5; break; case 0x41: KeyValue = 9; break; case 0x81: KeyValue = 13;break;GPIO_SetBits(GPIOA, GPIO_Pin_1);GPIO_ResetBits(GPIOA, GPIO_Pin_2 | GPIO_Pin_3);GPIO_Pin_0|switch(GPIO_ReadI
6、nputData(GPIOA)&0xff)case 0x12: KeyValue = 2; break; case 0x22: KeyValue = 6; break; case 0x42: KeyValue = 10;break; case 0x82: KeyValue = 14;break;GPIO_SetBits(GPIOA, GPIO_Pin_2);GPIO_ResetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_3);GPIO_Pin_0|switch(GPIO_ReadInputData(GPIOA)&0xff)case 0x14: KeyValue = 3;
7、 break; case 0x24: KeyValue = 7; break; case 0x44: KeyValue = 11;break; case 0x84: KeyValue = 15;break;GPIO_SetBits(GPIOA, GPIO_Pin_3);GPIO_ResetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);GPIO_Pin_0|switch(GPIO_ReadInputData(GPIOA)&0xff)case 0x18: KeyValue = 4; break; case 0x28: KeyValue = 8; break; case
8、0x48: KeyValue = 12;break; case 0x88: KeyValue = 16;break;GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);GPIO_ResetBits(GPIOA, GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);GPIO_Pin_4|while(GPIO_ReadInputData(GPIOA)&0xff)!=0x0f);return KeyValue;return 0;/*THEEND*/*-* 矩阵键盘驱动* 文 件: keyboa
9、rd.h* 编写人: LiuHui* 描述: 扫描 4x4 矩阵键盘输入,并返回键值* 适用范围: 驱动为 ST3.5 库编写,适用于STM32F10x 系列单片机* 所用引脚: PA0-PA7* 编写时间: 2013 年 11 月 22 日* 版本: 1.0-*/#ifndefKEYBOARD_H #defineKEYBOARD_Hvoid KeyBoard_Init(void); u8 Read_KeyValue(void); #endif/*THEEND*#include “stm32f10x.h“void KeyBoard_Init(void)GPIO_InitTypeDef GPIO
10、_InitStructure; GPIO_InitStructure.GPIO_Pin= GPIO_Pin_All; GPIO_InitStructure.GPIO_Speed= GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode= GPIO_Mode_Out_PP;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All; GPIO_InitStructure.GPIO_Speed= GPIO_Speed_2MHz; GPIO_InitStructure
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 矩阵 键盘 程序
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内