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、key.h文件,主要包括include:xxxxxx.h以及 按键GPIO端口的命名。
2、key.c文件,主要包括,key_init。设置按键的GPIO,速率,输入模式等。pin的初始状态需要设置。以及按键的响应函数,扫描、去抖等。
3、led.h文件,主要包括includexxxxx,以及.c文件中的函数命名。
4、led.c文件,主要包括GPIO初始化,各种灯闪方式的函数具体。
5、main
具体为:
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函数
写一个开关函数
设置使用按键控制小灯反装
}