这里用到的是正点原子开发板
可以看到键盘通过PE2、PE3、PE4、PA0来连接。如果你的开发板不是这个需要改到对应的接口啊。
另外可以看到WK_UP是高电平有效的,并且外部没有上下拉电阻,需要stm32内部设置上下拉。
首先写key.h文件,这里有两种方法库函数或者C51一样直接对io口进行操作。对比两中方法可以更好理解。
1、直接操作型
#ifndef __KEY_H
#define __KEY_H
#include "sys.h"
#define KEY0 PEin(4) //PE4
#define KEY1 PEin(3) //PE3
#define KEY2 PEin(2) //PE2
#define KEY3 PAin(0) //PA0 WK_UP
#define KEY_UP 4
#define KEY_LEFT 3
#define KEY_DOWN 2
#define KEY_RIGHT 1
void KEY_Init(void);//初始化
u8 KEY_Scan(u8); //检查按键是否按下
#endif
2、运用库函数型
#ifndef __KEY_H
#define __KEY_H
#include "sys.h"
#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)//定义PINE4对应KEY0
#define KEY1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)//同理
#