ShipCentralControl/Anjiehui7_DTU/User/gpio_key.c

40 lines
760 B
C
Raw Permalink Normal View History

2025-04-03 15:59:48 +08:00
#include "includes.h"
void Key_Open()
{
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void Key_Handler(void)
{
static uint32_t key_tick = 0;
uint32_t tick = GetTickCount();
uint8_t g_KeyVal = KEY_INVALID;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
uint8_t pe5 = LL_GPIO_IsInputPinSet(GPIOE, GPIO_PIN_5);
// <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD>
if(LL_GPIO_IsInputPinSet(GPIOE, GPIO_PIN_5))
return;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>300ms<6D><73><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if((tick >= key_tick && tick - key_tick < 300) || (tick < key_tick && 0xFFFFFFFFul - key_tick + 1 + tick < 300))
return;
if(pe5 == 0)
{
//printf("\n----------- Key pe5 pressed -----------\n");
g_KeyVal = KEY_ALARMOFF;
}
if(g_KeyVal != KEY_INVALID)
{
key_tick = GetTickCount();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(g_KeyVal == KEY_ALARMOFF && IS_ALARM_ON())
KZ_ALARM_OFF();
}
}