按键原理
WK_UP接VCC3.3,是高电平,当WK_UP==1的时候处于开启状态
KEY0和KEY1都接在GND上面,是处在低电平,当KEY0 和 KEY1=0时处于开启状态。
WK_UP接PA0;KEY0接PC5;KEY1接PA15。
mode:0,不支持连续按;1,支持连续按;
key_up=0是按下去;key_up=1是弹出来;
按键编程
实验的主要功能:用三个按键来控制灯的亮灭情况
1、建立led和key的.c文件和.h文件。led.h文件头文件如下:
key.h文件头文件如下:
2、写出"led.c"的程序:
引用"led.h"的头文件
写出灯程序
{
定义结构体
使能GPIOA、GPIOD的时钟函数
写出GPIOA、GPIOD分别的内置程序:
GPIO_InitStructure的三个方面:Pin、Mode、Speed,并配置三个方面的格式,根据设定参数初始化
再写出那个端口的输出高即灯灭
}
3、写出"key.h"的程序:
调用key.h的头文件
再调用delay.h的头文件
写出按键程序
{
定义结构体
使能GPIOA、GPIOC的时钟函数
关闭jtag,使能SWD,可以用SWD模式调试
写出KEY0、KEY1、WK_UP分别的内置程序:
GPIO_InitStructure的两个方面:Pin、Mode,并配置两个方面的格式,根据设定参数初始化
再处理按键函数
{
按键松开标志(注意静态工作变量)
选择是否连按
选择if(key_up&&(KEY00||KEY10||WK_UP1))或者 (KEY01&&KEY11&&WK_UP0)
}
}
4、写出主的程序:
引用"led.h"、“delay.h”、“sys.h”、"key.h"的头文件
写出主程序
{
初始化延时函数、KEY函数、LED函数
写一个开关函数
设置使用按键控制小灯反装
}