六擊及以上按鍵訊息處理的實現

2021-10-10 02:48:59 字數 652 閱讀 4839

首先,定義變數:

bsp_sys.h下sys_cb_t結構體中:

u8 bt_one_flag;

//單擊按下之後的訊息處理

u8 bt_one_flag_time;

//單擊按下之後的復位計時

之後來到藍芽訊息處理函式中,單擊按下記一下數,1s內按下六擊即可:

msg_bt.c下func_bt_message()中:

case k_play_pwr_user_def:

//短按按下訊息響應,單擊為抬起響應,變數計數為按下增加

sys_cb.bt_one_flag++

;break

;

之後就是按鍵按下計數的復位處理:

bsp_sys.c下usr_tmr5ms_isr()中:

if

(sys_cb.bt_one_flag !=0)

//六擊的復位處理

}

最後就是六擊按鍵處理,以喚醒siri為例:

func_bt.c下func_bt_process()中:

if

(sys_cb.bt_one_flag ==6)

vim的常用按鍵說明及舉例實現

一 為何要學vim 1 所有的unix like系統都會內建vi文字編輯器,其他的檔案編輯器不一定存在 2 所有軟體的編輯介面都會主動呼叫vi 3 vim具有程式編輯的能力,可以主動以字型顏色辨別語法的正確性,方便程式設計 4 程式簡單,編輯速度相當快速 二 vim的三種模式 1 一般模式 以vim...

控制台訊息的產生及處理

學過視窗程式的朋友都會知道訊息的概念,也知道如何處理訊息 系統訊息或是自定義訊息 但是其實我們的控制台程式也是有訊息的,下面我們來看看控制台程式的訊息的產生及處理 首先我向大家介紹兩個函式 setconsolectrlhandler bool winapi setconsolectrlhandler...

Chaos網路庫(三) 主迴圈及非同步訊息的實現

基本原理 在chaos開篇介紹 中已經提到,task service作為chaos庫的核心,主要承擔著三個重則 1.網路i o 2.超時事件 3.非同步訊息處理 簡單來講,可以認為乙個task service中包含乙個epollfd,乙個定時事件管理器,乙個等待被處理的非同步訊息佇列 而task s...