mirror of
https://github.com/No-Chicken/Power-Pico.git
synced 2026-04-03 13:02:36 +08:00
37 lines
671 B
C
37 lines
671 B
C
|
|
#include "key.h"
|
||
|
|
|
||
|
|
void Key_Port_Init(void)
|
||
|
|
{
|
||
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||
|
|
|
||
|
|
/* GPIO Ports Clock Enable */
|
||
|
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||
|
|
|
||
|
|
/*Configure GPIO pin : PA0 */
|
||
|
|
GPIO_InitStruct.Pin = KEY1_PIN;
|
||
|
|
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||
|
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||
|
|
HAL_GPIO_Init(KEY1_PORT, &GPIO_InitStruct);
|
||
|
|
}
|
||
|
|
|
||
|
|
uint8_t KeyScan(uint8_t mode)
|
||
|
|
{
|
||
|
|
static uint8_t key_up = 1;
|
||
|
|
uint8_t keyvalue=0;
|
||
|
|
if(mode) key_up = 1;
|
||
|
|
if( key_up && (!KEY1))
|
||
|
|
{
|
||
|
|
HAL_Delay(3);//ensure the key is down
|
||
|
|
if(!KEY1) keyvalue = 1;
|
||
|
|
if(keyvalue) key_up = 0;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
HAL_Delay(3);//ensure the key is up
|
||
|
|
if(KEY1)
|
||
|
|
key_up = 1;
|
||
|
|
}
|
||
|
|
return keyvalue;
|
||
|
|
}
|
||
|
|
|