STM32矩阵键盘程序44Word文档下载推荐.docx

上传人:b****5 文档编号:16767742 上传时间:2022-11-25 格式:DOCX 页数:9 大小:85.95KB
下载 相关 举报
STM32矩阵键盘程序44Word文档下载推荐.docx_第1页
第1页 / 共9页
STM32矩阵键盘程序44Word文档下载推荐.docx_第2页
第2页 / 共9页
STM32矩阵键盘程序44Word文档下载推荐.docx_第3页
第3页 / 共9页
STM32矩阵键盘程序44Word文档下载推荐.docx_第4页
第4页 / 共9页
STM32矩阵键盘程序44Word文档下载推荐.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

STM32矩阵键盘程序44Word文档下载推荐.docx

《STM32矩阵键盘程序44Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《STM32矩阵键盘程序44Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。

STM32矩阵键盘程序44Word文档下载推荐.docx

u8KeyValue=0;

if((GPIO_ReadInputData(GPIOA)&

0xff)!

=0x0f)

Delay_ms(10);

GPIO_SetBits(GPIOA,GPIO_Pin_0);

GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);

switch(GPIO_ReadInputData(GPIOA)&

0xff)

case0x11:

KeyValue=1;

break;

case0x21:

KeyValue=5;

case0x41:

KeyValue=9;

case0x81:

KeyValue=13;

break;

GPIO_SetBits(GPIOA,GPIO_Pin_1);

GPIO_ResetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_3);

case0x12:

KeyValue=2;

case0x22:

KeyValue=6;

case0x42:

KeyValue=10;

case0x82:

KeyValue=14;

GPIO_SetBits(GPIOA,GPIO_Pin_2);

GPIO_ResetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3);

case0x14:

KeyValue=3;

case0x24:

KeyValue=7;

case0x44:

KeyValue=11;

case0x84:

KeyValue=15;

GPIO_SetBits(GPIOA,GPIO_Pin_3);

GPIO_ResetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2);

case0x18:

KeyValue=4;

case0x28:

KeyValue=8;

case0x48:

KeyValue=12;

case0x88:

KeyValue=16;

GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);

GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|

GPIO_Pin_7);

while((GPIO_ReadInputData(GPIOA)&

=0x0f);

returnKeyValue;

return0;

/*--------------------------------THEEND--------------------------------------------*/

/*--------------------------------------------------------------------------------------*矩阵键盘驱动

*文件:

keyboard.h

*编写人:

LiuHui

*描述:

扫描4x4矩阵键盘输入,并返回键值

*适用范围:

驱动为ST3.5库编写,适用于STM32F10x系列单片机

*所用引脚:

PA0-PA7

*编写时间:

2013年11月22日

*版本:

1.0

#ifndef__KEYBOARD_H

#define__KEYBOARD_H

voidKeyBoard_Init(void);

u8Read_KeyValue(void);

#endif

/*----------------------------------THEEND------------------------------------------*

 

#include"

stm32f10x.h"

voidKeyBoard_Init(void)

GPIO_InitTypeDefGPIO_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_Mode=GPIO_Mode_IPD;

GPIO_Init(GPIOB,&

GPIO_SetBits(GPIOB,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6);

GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10);

//³

õ

Ê

¼

»

¯

PA,PB

voidDelay_ms(inttime){

inti=0;

while(time--)

{

i=12000;

while(i--);

}

u8KeyValue=1;

if((GPIO_ReadInputData(GPIOB)&

Delay_ms(10);

GPIO_SetBits(GPIOB,GPIO_Pin_3);

GPIO_ResetBits(GPIOB,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6);

switch(GPIO_ReadInputData(GPIOB)&

KeyValue=0;

GPIO_SetBits(GPIOB,GPIO_Pin_4);

GPIO_ResetBits(GPIOB,GPIO_Pin_3|GPIO_Pin_5|GPIO_Pin_6);

GPIO_SetBits(GPIOB,GPIO_Pin_5);

GPIO_ResetBits(GPIOB,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_6);

GPIO_SetBits(GPIOB,GPIO_Pin_6);

GPIO_ResetBits(GPIOB,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5);

//while((GPIO_ReadInputData(GPIOB)&

uint16_ttable[]={0xEB,0x28,0xB3,0xBA,0x78,0xDA,0xDB,0xA8,0xFB,0xFA};

intmain(){

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

KeyBoard_Init();

intkeyvalue=Read_KeyValue();

GPIO_Write(GPIOA,table[keyvalue]);

/*while

(1){

inti;

for(i=0;

i<

10;

i++){

GPIO_Write(GPIOA,table[i]);

Delay_ms(500);

}*/

/*u8keyvalue;

for(inti=0;

;

KeyBoard_Init();

keyvalue=Read_KeyValue();

GPIO_Write(GPIOA,table[keyvalue]);

}*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;

=0x73)

//在这个程序下为什么无论是GPIO_ReadInputData(GPIOB)&

=0x73还是GPIO_ReadInputData(GPIOB)&

0xff)==0x73都能往下运行,而在屏蔽Delay_ms(10)后则只能运行一种,是因为这个Delay_ms(10)对if里的判断有影响吗?

GPIO_Write(GPIOA,0x33);

Read_KeyValue();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1