init
This commit is contained in:
82
HARDWARE/KEY/key.c
Normal file
82
HARDWARE/KEY/key.c
Normal file
@@ -0,0 +1,82 @@
|
||||
#include "key.h"
|
||||
#include "delay.h"
|
||||
//-----------------------------------------------------------------
|
||||
|
||||
GPIO_TypeDef* BUTTON_PORT[BUTTONn] = {BUTTON_KEY1_GPIO_PORT,BUTTON_KEY2_GPIO_PORT,BUTTON_KEY3_GPIO_PORT,BUTTON_KEY4_GPIO_PORT};
|
||||
const uint16_t BUTTON_PIN[BUTTONn] = {BUTTON_KEY1_PIN,BUTTON_KEY2_PIN,BUTTON_KEY3_PIN,BUTTON_KEY4_PIN};
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
// void KEY_Init(void)
|
||||
//-----------------------------------------------------------------
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶˿<CCB6>
|
||||
// <20><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>: <20><>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>: <20><>
|
||||
// ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||||
//
|
||||
//-----------------------------------------------------------------
|
||||
void KEY_Init(void)
|
||||
{
|
||||
BSP_KEY_Init(BUTTON_KEY1); // KEY1<59><31><EFBFBD><EFBFBD>PD6
|
||||
BSP_KEY_Init(BUTTON_KEY2); // KEY2<59><32><EFBFBD><EFBFBD>PB4
|
||||
BSP_KEY_Init(BUTTON_KEY3); // KEY3<59><33><EFBFBD><EFBFBD>PB6
|
||||
BSP_KEY_Init(BUTTON_KEY4); // KEY4<59><34><EFBFBD><EFBFBD>PB9
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
// void BSP_KEY_Init(Button_TypeDef button)
|
||||
//-----------------------------------------------------------------
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>İ<EFBFBD><C4B0><EFBFBD>
|
||||
// <20><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>: button<6F><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>BUTTON_KEY1<59><31>BUTTON_KEY2<59><32>BUTTON_KEY3<59><33>BUTTON_KEY4<59><34>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>: <20><>
|
||||
// ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||||
//
|
||||
//-----------------------------------------------------------------
|
||||
void BSP_KEY_Init(Button_TypeDef button)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct;
|
||||
BUTTONx_GPIO_CLK_ENABLE(button); // <20><><EFBFBD><EFBFBD>KEYʱ<59><CAB1>
|
||||
|
||||
GPIO_InitStruct.Pin = BUTTON_PIN[button]; // <20><><EFBFBD><EFBFBD>KEY
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP; // <20><><EFBFBD><EFBFBD>
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; // <20><><EFBFBD><EFBFBD>
|
||||
HAL_GPIO_Init(BUTTON_PORT[button], &GPIO_InitStruct); // <20><>ʼ<EFBFBD><CABC>KEY
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
// u8 KEY_Scan(u8 mode)
|
||||
//-----------------------------------------------------------------
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8>
|
||||
// <20><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>: u8 mode<64><65>0<EFBFBD><30>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1֧<31><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>: <20><><EFBFBD><EFBFBD>ֵ
|
||||
// ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ȼ<EFBFBD>,KEY1>KEY2>KEY3>KEY4!!
|
||||
//
|
||||
//-----------------------------------------------------------------
|
||||
u8 KEY_Scan(u8 mode)
|
||||
{
|
||||
static u8 key_up=1; // <20><><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD><C9BF><EFBFBD>־
|
||||
if(mode==1) // ֧<><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
key_up=1;
|
||||
if(key_up&&(KEY1==0||KEY2==0||KEY3==0||KEY4==0)) // <20>а<EFBFBD><D0B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
delay_ms(10); // <20><>ʱ10ms
|
||||
key_up=0; // <20><><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD><C9BF><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
||||
if(KEY1==0) // <20><><EFBFBD><EFBFBD>K1<4B><31><EFBFBD><EFBFBD>
|
||||
return KEY1_PRES;
|
||||
else if(KEY2==0) // <20><><EFBFBD><EFBFBD>K2<4B><32><EFBFBD><EFBFBD>
|
||||
return KEY2_PRES;
|
||||
else if(KEY3==0) // <20><><EFBFBD><EFBFBD>K3<4B><33><EFBFBD><EFBFBD>
|
||||
return KEY3_PRES;
|
||||
else if(KEY4==0) // <20><><EFBFBD><EFBFBD>K4<4B><34><EFBFBD><EFBFBD>
|
||||
return KEY4_PRES;
|
||||
}
|
||||
else if(KEY1==1&&KEY2==1&&KEY3==1&&KEY4==01) // <20>ް<EFBFBD><DEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
key_up=1;
|
||||
return 0; // <20>ް<EFBFBD><DEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
//-----------------------------------------------------------------
|
||||
// End Of File
|
||||
//-----------------------------------------------------------------
|
||||
Reference in New Issue
Block a user