蓝桥杯嵌入式——按键长按
·
③判断是否符合短按要求 ( A0_state==0 && A0_last_state==0) ,TIMx->CNT <10000
7.让原来的初始值变为末尾值( A0_last_state=A0_state )
HAL_TIM_Base_Start(&htimx);
uint8_t A0_State;
uint8_t A0_Last_State=1;
uint8_t B0_State;
uint8_t B0_Last_State=1;
uint8_t B1_State;
uint8_t B1_Last_State=1;
uint8_t B2_State;
uint8_t B2_Last_State=1;
void key_scan(){
A0_State=HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);
B0_State=HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0);
B1_State=HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1);
B2_State=HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2);
if(A0_State==0 && A0_Last_State==1){
TIMx->CNT=0;
}
else if(A0_State==0 && A0_Last_State==0){
if(TIMx->CNT>=1000){
//长按按键
}
}
else if(A0_State==1 && A0_Last_State==0){
if(TIMx->CNT<1000){
//短按按键
}
}
A0_Last_State=A0_State;
B0_Last_State=B0_State;
B1_Last_State=B1_State;
B2_Last_State=B2_State;
}







更多推荐
所有评论(0)