內容如題:
1. 獨立按鍵(軟體消抖)
晶元引腳初始化為上拉輸入
#define key_l_state ll_gpio_isinputpinset(key_l_port, key_l_pin)
#define key_r_state ll_gpio_isinputpinset(key_r_port, key_r_pin)
#define key_enter_state ll_gpio_isinputpinset(key_enter_port, key_enter_pin)
uint8_t key_scan
(void
)elseif(
(key_l_state==1)
&&(key_r_state==1)
&&(key_enter_state==1)
) up_flag=1;
//只有當所有按鍵都是預設狀態,再置位按鍵抬起標誌
return0;
}int
main
(void
)else
if(key==2)
}
2. 按鍵長按、短按:
首先初始化乙個tim作為長按時間的計數器
void
mx_tim4_init
(void);
/* peripheral clock enable */
ll_apb1_grp1_enableclock
(ll_apb1_grp1_periph_tim4)
;/* tim4 interrupt init */
nvic_setpriority
(tim4_irqn,
nvic_encodepriority
(nvic_getprioritygrouping()
,2,0
));nvic_enableirq
(tim4_irqn)
; tim_initstruct.prescaler =
3600
; tim_initstruct.countermode = ll_tim_countermode_up;
tim_initstruct.autoreload =
1000
; tim_initstruct.clockdivision = ll_tim_clockdivision_div1;
ll_tim_init
(tim4,
&tim_initstruct)
;ll_tim_disablearrpreload
(tim4)
;ll_tim_setclocksource
(tim4, ll_tim_clocksource_internal)
;ll_tim_settriggeroutput
(tim4, ll_tim_trgo_update)
;ll_tim_disablemastersl**emode
(tim4)
;}
定義乙個結構體,把按鍵引腳定義為上拉輸入
typedef
struct
key_state;
在tim4中斷中處理按鍵的長按、短按
void
tim4_irqhandler
(void
)else
//鬆開按鍵
else
if(press_times1>20)
//按鍵按下時長超過100ms
}else
press_times1=0;
//清空計數
}/*****************************key0長短按處理*****************************************/if(
ll_gpio_isinputpinset
(gpioe, key0_pin)==0
)//按鍵按下
else
//鬆開按鍵
else
if(press_times0>20)
//按鍵按下時長超過100ms
}else
press_times0=0;
//清空計數
}/****************************key1和key2同時長按**************************************/
}/* user code end tim4_irqn 0 */
/* user code begin tim4_irqn 1 */
/* user code end tim4_irqn 1 */
}
使用:
while(1
)else
if(keystate.l1_l_flag)
//else if()。。。。。
}
projectlink stm32按鍵 長按 短按 函式 一
在stm32工程中,長按和短按的 書寫,呼叫的讀取按鍵狀態的底層函式。封裝成的按鍵函式 下面是函式的標頭檔案,和.c檔案的 使用定時器來掃瞄按鍵。define key on 1 define key off 0 define key null 0 define key short 1 define ...
stm32外部中斷按鈕短按長按1 0
key.c define pwmaddkey 0 gpio readinputdatabit gpiob,gpio pin 8 讀取按鍵pwmaddkey 0 b8 define pwmreducekey 0 gpio readinputdatabit gpiob,gpio pin 9 讀取按pwm...
stm32 工業按鍵檢測 STM32按鍵的檢測
stm32的按鍵檢測相對比較簡單,首先按部就班的初始化連線的到的i o,然後寫乙個按鍵掃瞄函式,這個和51微控制器的差不多。以下是乙個比較典型的例子 利用按鍵控制led key.件 ifndef key h define key h include sys.h definekey0 gpio rea...