BLE學習 如何在藍芽4 0BLE中新增新任務?

2021-08-02 18:34:59 字數 1040 閱讀 4462

在使用藍芽4.0ble協議棧進行應用程式開發時,如何在應用程式中新增乙個新任務

下面結合工程示例******bleperipheral來講解,開啟osal_******bleperipheral.c檔案可以找到陣列tasksarr和函式osalinittasks()。tasksarr陣列裡存放了所有任務的事件處理函式的位址;osalinittasks()是osal的任務初始化函式,所有任務的初始化工作都在這裡面完成,並且自動給每個任務分配乙個任務id。

要新增新任務,只需要編寫兩個函式:

(1)新任務的初始化函式;

(2)新任務的事件處理函式。

將事件處理函式的位址加入tasksarr陣列,**如下所示。

const ptaskeventhandlerfn tasksarr =

;

將新任務的初始化函式新增在osalinittasks()函式的最後,如下**所示。

void osalinittasks( void )

在此例中,******bleperipheral_processevent函式新增到了函式的末尾,將

******bleperipheral_init()函式新增到osalinittasks()任務初始化函式中。

需要注意兩點:

(1)taskarr陣列裡各事件處理函式的排列順序要與osalinittasks()函式中呼叫各任務初始化函式的順序保持一致,只有這樣才能保持一致,只有這樣才能保證每個任務的事件處理函式能夠接收到正確的任務id(在osalinittasks()函式中分配)

(2)為了保證osalinittasks()函式所分配的任務id,需要給每乙個任務定義乙個全域性變數來儲存這個id。如在******bleperipheral.c中定義了乙個全域性變數

******bleperipheral_taskid,並且******bleperipheral_init函式中對其進行賦值。

iOS藍芽4 0 BLE 開發

本文將一步一步講解如何使用corebluetooth框架來與各種可穿戴裝置進行通訊,使用 小公尺手環 來進行基本的測試。macbook pro mac os x 10.10 xcode 6.3.2 iphone 5s v8.1 小公尺手環 從上面這幅圖可以看到,我們的ios裝置是central,用來...

藍芽4 0(BLE)電子煙方案

電子香菸得到了越來越多的消費者的青睞。它不僅僅能讓吸菸者的健康不受到危害,而且還能讓他們的吸菸行為不受地點的限制。但是似乎有人認為 這些電子香菸的功能還 應該更強大點 近日,一種更加智慧型化的電子香菸問世,它就是smokio 據悉,這種電子香菸使用藍芽 針對這一產品市場,信馳達開發出藍芽4.0 電子...

藍芽4 0BLE協議棧介紹

問題 什麼是ble協議棧?ble協議棧與ble協議的關係?顧名思義,人類之間需要一種語言才能溝通,機器之間,電子之間也有乙個標準,也就是作為通訊標準,也就是通訊協議。協議 定義了一系列通訊標準,通訊雙方都按照這一標準,進行資料通訊。協議棧 協議的具體實現形式,實現的函式庫,韌體庫。把個個協議集合到了...