藍芽4.0 BLE
讀了N多文件,其中推薦的有:
Webee的《藍芽4.0是戰演練》
Ghostyu的 《BLE權威教程》
1:透穿實現:
利用TI的BLE包裡的工程直接燒
上位裝置用 central,下位裝置用peripheral工程
做以下處理:
central 的NPI初始化時新增uart CB,並在串列埠回撥函式中 直接新增write char函式寫進特徵值(實現上位從串列埠接收並通過藍芽傳送), 使能特徵值通知,並在通知處理事件中將資料從串列埠傳送(實現上位的從藍芽接受並從串列埠傳送)
peripheral在charchangeCB中新增串列埠傳送(實現從藍芽接受,從串列埠傳送),在註冊profile時注意註冊成可通知型別,並在串列埠回撥函式中setchar來設定特徵值(實現從串列埠接受從藍芽傳送)
以上兩個特徵值可以自己註冊。
2:利用cenral或者peripheral等協議棧模板工程定製自己的工程
(1)定義自己的函式(init 及 process)定義函式對應的事件 16位最多16種事件(事件定義位置及形式 參考peripheral.c中 Simple BLE peripheral Task Events部分)
定義好之後 在協議棧init task部分新增自己函式的init,然後把process函式放在taskarr[]函式陣列最後(參見SimpleBLEeventProcss位置)。
(2)定義好的task events應該與process中的switch選項對應
(3)啟動事件,可以同樣在SimpleTLEperipheral_init()函式的最後用osal_set_events(函式ID,事件)啟動事件。
(要實現週期執行,可在events_process中呼叫延時osal_set_events());
最後最重要的一點是:根據自己工程需求,配置連線方式,上電advertising比較方便。
PS: 如果有新的硬體初始化需求,可以在HL層的common檔案中 halDriveInit()函式中新增,該函式會被main()呼叫。
GAP及GATT提供的API簡介 見 BLE協議棧中Document中的HTML格式文件。
PSS:event用於同一任務傳遞命令,而message用於不同任務之間命令傳遞。
event見上2,message自定義方法如下:
Comdef.h中給出了使用者自定義message的巨集範圍,根據其範圍可以在app中自定義message
定義message後,在需要用的地方建立訊息結構體:msgpkt = (keyChange_t *)osal_msg_allocate(sizeof(keyChang_t));
msgkpt->hdr.event = KEY_CHANG;
msgpkt->state = state;
msgpkt->keys = keys;
然後傳送即可:osal_msg_send(registeredKeystaskid,uint8 * msgkpt);
最後在接受訊息的函式
MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive(SampleApp);
while( MSGpkt
{
switch( MSGpkt->har.evet )
case: KEY_CHANG; ````````break;
case:USER_MSG;```````````break;
})
通用工程模板及通用OSAL模板後續補充。
相關文章
- iOS藍芽4.0(BLE)開發(一)iOS藍芽
- React Native 藍芽4.0 BLE開發React Native藍芽
- 藍芽4.0BLE中協議棧詳解藍芽協議
- Android藍芽4.0(ble)開發的解決方案Android藍芽
- Android Ble藍芽入門Android藍芽
- Android藍芽那點事——深入瞭解藍芽BlE藍芽 《總結篇》Android藍芽
- android藍芽BLE(三) —— 廣播Android藍芽
- android藍芽BLE(二) —— 通訊Android藍芽
- android藍芽BLE(一) —— 掃描Android藍芽
- Android BLE藍芽詳細解讀Android藍芽
- BLE藍芽那些事—深入瞭解Android藍芽Bluetooth基礎篇藍芽Android
- iOS-BLE藍芽開發持續更新iOS藍芽
- android 4.0 藍芽分析之一Android藍芽
- android 4.0 藍芽分析之二Android藍芽
- iOS藍芽4.0開發基礎教程iOS藍芽
- Android BLE 藍芽開發——掃碼槍基於BLESSEDAndroid藍芽
- 使用RxJava幫助低功耗藍芽(BLE)進行通訊RxJava藍芽
- iOS 藍芽4.0開發使用(內附Demo)iOS藍芽
- iOS之BLE藍芽SDK開發個人總結(進階篇)iOS藍芽
- iOS之BLE藍芽SDK開發個人總結(基礎篇)iOS藍芽
- ESP32:藍芽BLE控制M3508電機藍芽
- 藍芽4.0技術知識整理和基本介紹藍芽
- 藍芽4.0技術分析1-廣播者角色藍芽
- 藍芽藍芽
- Android藍芽使用詳解(普通藍芽)Android藍芽
- 藍芽模組藍芽模組
- iOS 藍芽iOS藍芽
- ios 藍芽iOS藍芽
- iOS藍芽開發 Bluetooth藍芽CoreBluetooth 藍芽中心裝置的實現 藍芽外設的實現 有DemoiOS藍芽
- Android藍芽協議-藍芽掃描 startDiscoveryAndroid藍芽協議
- 藍芽HFP 藍芽電話剖析(二) --- AT command集合藍芽
- java+藍芽Java藍芽
- iOSBluetooth(藍芽)iOS藍芽
- MASA MAUI Plugin 安卓藍芽低功耗(一)藍芽掃描UIPlugin安卓藍芽
- MASA MAUI Plugin IOS藍芽低功耗(三)藍芽掃描UIPluginiOS藍芽
- 熊晨灃藍芽實戰--小程式藍芽連線2.0藍芽
- iOS藍芽開發iOS藍芽
- 藍芽工作流程藍芽