日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

win7 蓝牙4.0 ble驱动_初识物联网无线通信技术之蓝牙4.0BLE协议栈

發布時間:2023/12/2 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 win7 蓝牙4.0 ble驱动_初识物联网无线通信技术之蓝牙4.0BLE协议栈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[本文屬原創,轉載請附上原文出處鏈接。]

一、需要的軟件工具

1、BLE協議棧(BLE-CC254x-1.4.0)

2、IAR開發軟件(IAR Embedded Workbench8.20.2)

注:1.4.0協議棧使用8.20.2的iar版本,1.3.2協議棧等使用的是8.10.4的iar版本。

二、BLE協議棧安裝目錄下文件夾說明

Accessories 一些工具和已經編譯好的Hex文件此文件夾中有Btool的安裝包、USB-CDC的驅動附件;

Components Hal驅動,OSAL源碼、協議棧通用源碼此文件夾是OSAL各層組件的實現;

Documents 幫助文檔協議棧說明文檔,包括協議棧和DEMO的相關介紹和開發文檔,這是學習BLE最好的資料;

Projects 工程文件這里有一些TI的Demo,我們開發一般是在Demo的基礎上進行修改。

三、BLE協議棧工作流程

關于BLE協議棧工作流程圖大概就是下面這個樣子:

BLE協議棧分為主機和控制器兩部分。主機部分包括:邏輯鏈路控制及自適應協議層、安全管理層、屬性協議層、通用訪問配置文件層、通用屬性配置文件層;控制器部分包括:物理層,鏈路層、主機控制接口層。BLE協議棧的配置文件層包括GAP角色/安全配置文件、GATT配置文件兩部分,處于協議棧的頂層,配置文件層將協議棧和應用層聯系在一起。GAP層負責處理設備訪問模式和連接,如廣播的使能/禁止、廣播的間隔、配對綁定及連接的控制、初始化安全管理。在成功連接設備后,可以調用對應的函數來獲得設備的service(服務),并對service中的characterister(標簽)進行讀寫。GATT層主要是用來數據通信,即service跟characterister。可以在設備的BLE協議棧中添加一個或多個service,而service(服務)中包含一個或多個characterister(標簽)。BLE協議棧四種設備類型:Central主機、Peripheral從機、Observer觀察者、Broadcaster廣播者。主機和從機的通信過程大概是:從機開啟廣播,主機開始掃描,當從機接收到主機的掃描消息后,會向主機發送掃描回應數據。然后主機發起連接,建立通信。

四、消息廣播

在完成一個處理事件后,需要把這個消息廣播出去,就把值填加到廣播數組中advertData[],調用GAPRole_SetParameter(GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );函數廣播出去,這樣還不能廣播成功。進入GAPRole_SetParameter里面發現缺少GAP_UpdateAdvertisingData函數,需要修改動態廣播數據,加入以下代碼:

case GAPROLE_ADVERT_DATA:

if ( len <= B_MAX_ADV_LEN )

{

VOID osal_memset( gapRole_AdvertData,0, B_MAX_ADV_LEN );

VOID osal_memcpy( gapRole_AdvertData,pValue, len );

gapRole_AdvertDataLen = len;

GAP_UpdateAdvertisingData(gapRole_TaskID,

TRUE,gapRole_AdvertDataLen, gapRole_AdvertData );

}

else

{

ret = bleInvalidRange;

}

break;

在調用完GAPRole_SetParameter函數后可以廣播了,需要控制任務調用時間控制后面添加osal_start_timerEx函數,這個是定時循環向任務發送事件消息,具體實際時間可以自己定。

GAPRole_SetParameter(GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );

osal_start_timerEx(simpleBLEBroadcaster_TaskID,SBP_ADV_RGB_EVT,100);

return ( events ^SBP_ADV_RGB_EVT );

這樣數據就可以廣播了,采用PacketSniffer抓包就可以在AdvData看到廣播數據了(十六進制數)。在使用某個功能時,必須在Option下配置C/Compiler Preprocessor添加宏定義來開啟。比如使用串口時添加HAL_UART=TURE,注銷POWER_SAVING。在使用ADC功能時,添加HAL_ADC=TRUE。

總結

以上是生活随笔為你收集整理的win7 蓝牙4.0 ble驱动_初识物联网无线通信技术之蓝牙4.0BLE协议栈的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。