80 lines
1.8 KiB
C
80 lines
1.8 KiB
C
|
|
#include "key.h"
|
|||
|
|
#include "delay.h"
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѧϰʹ<CFB0>ã<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>;
|
|||
|
|
//ALIENTEK STM32F407<30><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>@ALIENTEK
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳:www.openedv.com
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:2014/5/3
|
|||
|
|
//<2F>汾<EFBFBD><E6B1BE>V1.0
|
|||
|
|
//<2F><>Ȩ<EFBFBD><C8A8><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>
|
|||
|
|
//Copyright(C) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿƼ<D3BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾ 2014-2024
|
|||
|
|
//All rights reserved
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void KEY_Init(void)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
GPIO_InitTypeDef GPIO_InitStructure;
|
|||
|
|
|
|||
|
|
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOE, ENABLE);//ʹ<><CAB9>GPIOA,GPIOEʱ<45><CAB1>
|
|||
|
|
|
|||
|
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4; //KEY0 KEY1 KEY2<59><32>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
|
|||
|
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//<2F><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>ģʽ
|
|||
|
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100M
|
|||
|
|
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
GPIO_Init(GPIOE, &GPIO_InitStructure);//<2F><>ʼ<EFBFBD><CABC>GPIOE2,3,4
|
|||
|
|
|
|||
|
|
|
|||
|
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;//WK_UP<55><50>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>PA0
|
|||
|
|
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN ;//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
GPIO_Init(GPIOA, &GPIO_InitStructure);//<2F><>ʼ<EFBFBD><CABC>GPIOA0
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD>ذ<EFBFBD><D8B0><EFBFBD>ֵ
|
|||
|
|
//mode:0,<2C><>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;1,֧<><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
//0<><30>û<EFBFBD><C3BB><EFBFBD>κΰ<CEBA><CEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//1<><31>KEY0<59><30><EFBFBD><EFBFBD>
|
|||
|
|
//2<><32>KEY1<59><31><EFBFBD><EFBFBD>
|
|||
|
|
//3<><33>KEY2<59><32><EFBFBD><EFBFBD>
|
|||
|
|
//4<><34>WKUP<55><50><EFBFBD><EFBFBD> WK_UP
|
|||
|
|
//ע<><D7A2><EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ȼ<EFBFBD>,KEY0>KEY1>KEY2>WK_UP!!
|
|||
|
|
u8 KEY_Scan(u8 mode)
|
|||
|
|
{
|
|||
|
|
static u8 key_up=1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD><C9BF><EFBFBD>־
|
|||
|
|
if(mode)key_up=1; //֧<><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1))
|
|||
|
|
{
|
|||
|
|
delay_ms(10);//ȥ<><C8A5><EFBFBD><EFBFBD>
|
|||
|
|
key_up=0;
|
|||
|
|
if(KEY0==0)return 1;
|
|||
|
|
else if(KEY1==0)return 2;
|
|||
|
|
else if(KEY2==0)return 3;
|
|||
|
|
else if(WK_UP==1)return 4;
|
|||
|
|
}else if(KEY0==1&&KEY1==1&&KEY2==1&&WK_UP==0)key_up=1;
|
|||
|
|
return 0;// <20>ް<EFBFBD><DEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|