BLE按鍵整理

2021-07-06 10:43:05 字數 1713 閱讀 1233

1 定義id:

static uint8 ******bletest_taskid;

2 初始化的時候給id賦值:

******bletest_taskid = task_id;

3 註冊按鍵的任務:

registerforkeys( ******bletest_taskid );

4 啟動初始化任務,基本沒個工程都是如此,也就是初始化函式初始化後執行的事件,我們自己定義的:

osal_set_event( ******bletest_taskid,sbp_start_device_evt );

5 應用程式事件響應函式

uint16 ******bletest_processevent( uint8task_id, uint16 events )

a 系統事件,這個事件就是包括了按鍵事件,和藍芽接收資料,傳送資料事件。

if ( events & sys_event_msg )

uint8 *pmsg;

if ( (pmsg =osal_msg_receive( ******bletest_taskid )) != null )//接收這個任務來的訊息。

******blecentral_processosalmsg((osal_event_hdr_t *)pmsg );//相當於訊息處理

// release the osalmessage

voidosal_msg_deallocate( pmsg );釋放這個訊息

// return unprocessedevents

return (events ^sys_event_msg);

b 初始化函式執行後的事件,這個系統開始執行了。

if ( events &sbp_start_device_evt )

halledset(hal_led_1,hal_led_mode_on);      // 點亮led1              

// 返回這個, 告訴osal,這個實踐你已經處理了

return ( events ^sbp_start_device_evt );  

6 首先是當系統事件來的時候,會設定sys_event_msg,然後我們在接收系統訊息,後執行處理訊息函式******blecentral_processosalmsg( (osal_event_hdr_t *)pmsg );

可以根據接收到訊息的pmsg->event值,來判斷是按鍵還是別的訊息。

7 當是按鍵訊息的時候,我們直接呼叫按鍵處理函式,

8 按鍵處理函式

******blecentral_handlekeys(((keychange_t *)pmsg)->state, ((keychange_t *)pmsg)->keys );

9 static void******blecentral_handlekeys( uint8 shift, uint8 keys );

課根據keys的不同,斷定出是哪個按鍵被按下了。

問題:看到這裡現在處在的問題有如下:

1 按鍵事件是怎麼產生的,以及對應的是那個引腳?

答:首先從驅動說起,

上圖是巨集定義了幾個暫存器;

接下來就是初始化函式:

設定觸發沿

接下來就直接進入中斷處理函式;

當我們定義的按鍵發生了的時候,會設定valid變數為true最後面的if語句,判斷否執行

在下面的這個函式就能確定按鍵是誰產生的了

在應用層可用。

vim常用按鍵整理

內容比較雜,本篇將針對我個人的使用做一些整理,方便查閱。ctrl f 向下移動一屏,f代表forward ctrl b 向上移動一屏,b代表before ctrl d 向下移動半屏,d指down ctrl u 向上移動半屏,u指upz 回車 把當前行移動到螢幕頂部 擴充套件命令如 100z 回車 將...

BLE(17) BLE 工程簡述

前面,link layer 敘述了一部分,這裡也聊聊做 ble 的大致的方向,以及做乙個這個東西,大致需要哪些元件 工具等。簡單的聊聊我的認識和看法。見解如有不對,請大神們指正 既然是要做 ble,那麼肯定是先需要熟讀 ble spec,從而了解其的基本特性 物理特性和軟體規範 在每個版本的 cor...

BLE開發入門

摘要 介紹ble入門知識 藍芽低能耗 ble 技術是低成本 短距離 可互操作的魯棒性無線技術,工作在免許可的2.4ghz ism射頻頻段。它從一開始就設計為超低功耗 ulp 無線技術。它利用許多智慧型手段最大限度地降低功耗。魯棒是robust的音譯,也就是健壯和強壯的意思。它是在異常和危險情況下系統...