111 lines
2.3 KiB
C
Raw Permalink Normal View History

2021-07-28 13:15:22 +08:00
#include "key.h"
#include "delay.h"
//////////////////////////////////////////////////////////////////////////////////
//KEY<45><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//STM32H7<48><37><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-HAL<41><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//////////////////////////////////////////////////////////////////////////////////
/************************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//STM32H7<48><37><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-HAL<41><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/************************************************************************************/
void KEY_Init(void)
{
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_GPIOC_CLK_ENABLE(); //<2F><><EFBFBD><EFBFBD>GPIOCʱ<43><CAB1>
__HAL_RCC_GPIOE_CLK_ENABLE(); //<2F><><EFBFBD><EFBFBD>GPIOEʱ<45><CAB1>
GPIO_Initure.Pin=GPIO_PIN_3; //PE3 :<3A><>Ӧ K1
GPIO_Initure.Mode=GPIO_MODE_INPUT; //<2F><><EFBFBD><EFBFBD>
GPIO_Initure.Pull=GPIO_PULLUP; //<2F><><EFBFBD><EFBFBD>
GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH; //<2F><><EFBFBD><EFBFBD>
HAL_GPIO_Init(GPIOE,&GPIO_Initure);
GPIO_Initure.Pin=GPIO_PIN_5; //PC5 :<3A><>Ӧ K2
GPIO_Initure.Mode=GPIO_MODE_INPUT; //<2F><><EFBFBD><EFBFBD>
GPIO_Initure.Pull=GPIO_PULLUP; //<2F><><EFBFBD><EFBFBD>
GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH; //<2F><><EFBFBD><EFBFBD>
HAL_GPIO_Init(GPIOC,&GPIO_Initure);
}
/************************************************************************************/
//<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>WKUP<55><50><EFBFBD><EFBFBD> WK_UP
//ע<><D7A2><EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ȼ<EFBFBD>,KEY1>KEY2
//STM32H7<48><37><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-HAL<41><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/************************************************************************************/
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1; //<2F><><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD><C9BF><EFBFBD>־
if(mode==1)key_up=1; //֧<><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(key_up&&(KEY1==0||KEY2==0))
{
delay_ms(10);
key_up=0;
if(KEY1==0) return KEY1_PRES;
else if(KEY2==0) return KEY2_PRES;
}else if(KEY1==1&&KEY2==1)key_up=1;
return 0; //<2F>ް<EFBFBD><DEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//STM32H7<48><37><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-HAL<41><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com