国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

應用筆記 | STM32WB基于Custom Template實現客戶定制BLE私有協議

STM32單片機 ? 來源:未知 ? 2023-10-08 17:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


關鍵字:STM32WB,BLE私有協議,定制



目錄預覽


1.引言

2.STM32CubeMx 實現步驟

3.測試平臺搭建及功能測試

4.小結



01

引言


STM32WB55是一款支持BLE5.x的雙核高性能MCU,針對BLE的應用固件包STM32Cube_FW_WB_V1.xx.xxProjectsP-NUCLEO-WB55.NucleoApplicationsBLE里面也提供了大量的例程,目前支持的標準GAP服務例程在STM32CubeMX中已有列出,或可以在固件包STM32Cube_FW_WB_V1.xx.xx MiddlewareSTSTM32_WPANlesvc中找到。然而,在實際的STM32WB意向客戶中,使用BLE私有協議來開發Profile非標產品的客戶占了絕大部分。讀者可以去查看BLE_p2pServer、BLE_Custom等例程,對于需要添加自定義ATT屬性和服務的應用,現有例程里面STM32CubeMX是無法自定義添加ATT屬性和服務。但筆者發現,其實使用STM32CubeMX的Custom Template是能實現上述功能的。


本文的目的旨在使用STM32CubeMX以及Custom Template例程基于STM32WB55-Nucleo實現基于BLE私有協議的通用通信框架,使客戶快速上手進行產品開發,且可以直接應用在產品上,應用框架的設計如下圖所示。另外,本文還對BLE協議棧的下載和升級注意事項做了詳細指導,如果讀者不熟悉這些內容,可以先行閱讀。



如上圖所示,使用手機APP與STM32WB進行BLE私有協議通信,一共設計了4種類型的數據訪問:讀/寫、只寫、只讀、通知,這4種訪問類型基本可以覆蓋大部分數據訪問場景


02

STM32CubeMX實現步驟


2.1 創建BLE工程添加并配置外設


請在搭建工程之前,下載安裝最新的STM32CubeMX和STM32CubeWB


2.1.1 在STM32CubeMX中點擊“File”/“New Project”在彈出對話框中輸入“STM32WB55RG”創建一個新工程



2.1.2 工程配置如下圖所示,配置工程名字、保存路徑、選擇編譯工具、調整堆棧大小和選擇需要的STM32CubeWB的庫文件(缺省為已安裝的最新版本)。



2.1.3 系統配置:調試口



2.1.4 外設配置:添加外部高速晶振(HSE)和低速晶振(LSE)



2.1.5 外設配置:調試打印串口USART,手動將USART1引腳重映射到PB6/PB7



使能USART1的TX的DMA功能和USART1的全局中斷



2.1.6 外設配置:使能HESM,它完全由BLE stack管理



2.1.7 外設配置:使能RF,它完全由BLE stack管理。



2.1.8 外設配置:使能IPCC,它完全由BLE stack管理。只需同時使能它的RX/TX中斷即可。



2.1.9 外設配置:使能RTC,同時選擇WakeUp為“Internal WakeUp”和WakeUp中斷。



2.1.10 外設配置:配置時鐘



2.1.11 外設配置:NVIC的配置



至此,外設的配置和添加部分已經完成。


2.2 BLE協議棧的添加及配置


2.2.1 協議棧配置:使能BLE協議棧



2.2.2 協議棧配置:禁止“Custom P2P Server”并使能“Custom Template”自定義GATT通用模板



2.2.3 協議棧配置:新建一個GATT服務,其名稱為“My_Data_Server"



2.2.4 協議棧配置:GATT服務基本配置



2.2.5 協議棧配置:配置GATT讀&寫 服務特征及屬性值



2.2.6 協議棧配置:配置GATT寫 服務特征及屬性值



2.2.7 協議棧配置:配置GATT讀 服務特征及屬性值



2.2.8 協議棧配置:配置GATT通知 服務特征及屬性值



2.2.9 協議棧配置:配置GATT廣播參數配置



2.2.10 協議棧配置:BLE配對參數設置



2.2.11 協議棧配置:BLE協議棧調試及打印配置(需依次序配置)



2.3 生成工程代碼并初步測試


2.3.1 點擊“GENERATE CODE”生成工程代碼



2.3.2 在生成的代碼中添加BLE Trace&Debug初始化代碼


2.3.3 在“main.c”文件中取消“MX_UART_Init(void)”的“static”屬性


2.3.4 在“app_entry.c”文件中增加“Debug”模塊的初始化代碼“APPD_Init()”。



2.3.5 下載代碼到STM32WB55-NUCLEO中運行。此時,在手機的藍牙列表中,已經能成功地搜索添加的BLE設備。說明Debug和BLE協議棧已經成功運行。



2.4 添加BLE Stack應用代碼


為了便于對后續添加代碼的理解,我們先將Central(手機)與STM32WB進行BLE通信的數據交互概括如下。所以需要將用戶代碼添加到Custom_STM_Event_Handler()、Custom_STM_App_Notification()中。



BLE應用代碼添加:定義用戶數據緩存。

在“custom_app.c”文件中定義4個用戶緩存區數組。



BLE事件驅動代碼添加:


在“custom_stm.c”文件中的“Custom_STM_Event_Handle r(void*Event)”中依次為WRITE_READ_DATA_BUF、WRITE_DATA_BUF、NOTIFY_DATA_BUF特征和屬性添加stack層的事件驅動代碼,以使BLE數據從stack層傳遞到app層。


添加特征1 Events:WRITE_READ_DATA_BUF(即User_Write_Read_Data[]對應的寫&讀操作句柄)請求驅動代碼。



上圖對應的代碼文本如下所示:




上圖對應的代碼文本如下圖所示:



添加特征2 Events驅動:WRITE_DATA_BUF(即User_Write_Data []對應的寫操作句柄)代碼。



上圖對應的代碼文本如下圖所示:



添加特征3 Events驅動:READ_DATA_BUF(即User_Read_Data[]對應的寫操作句柄)代碼



上圖對應的代碼文本如下圖所示:



添加特征4 Events驅動:NOTIFY_DATA_BUF(即User_Notify_Data[]對應的寫操作句柄)請求驅動已經由STM32CubeMX自動完成了。NOTIFY_DATA_BUF不用再手動添加。



BLE應用數據代碼添加:


在“custom_app.c”文件中的Custom_STM_App_Notification(Custom_STM_App_Notification_evt_t*pNotification)”添加代碼,以將BLE數據上傳到4個User_xxx_Data[]緩沖區,依次添加代碼如下。



2.5 修改BLE最大數據包傳輸長度


如果不修改,BLE單包長度最大僅為23字節


1. 在“app_conf.h”中修改BLE stack最大數據包長度(CFG_BLE_MAX_ATT_MTU)



2. 在“app_ble.c”文件SVCCTL_UserEvtFlowStatus_t_SVC CTL_App_Notification(void*pckt)中添加紅色部分代碼。



至此,所有代碼更改完成。


03

測試平臺搭建及功能測試


3.1 使用STM32CubeProgrammer BLE協議棧安裝(升級)


升級ST-LINK固件以保證與STM32CubeProgrammer驅動是匹配的



查看當前FUS版本,并將FUS升級到最新版本



如果當前FUS版本是0.5.3,FUS固件使用“stm32wb5x_FUS_fw_for_fus_0_5_3.bin”,否則FUS固件使用“stm32wb5x_FUS_fw.bin”,強烈建議閱讀BLE協議棧及FUS升級詳細說明“STM32Cube_FW_WB_V1.13.3Projects STM32WB_Copro_Wireless_BinariesSTM32WB5xRelease_Notes.html”。



升級(安裝)BLE協議棧,根據MCU型號選擇相應的固件和下載地址



3.2 測試平臺搭建及驗證


3.2.1 在Android安卓應用市場下載安裝“BLE調試助手”



3.2.2 可發現設備“MY_STM32WB”,并點擊“CONNECT”后可以發現application特征和屬性訪問服務,如下圖所示。



3.2.3 設置BLE最大單包傳輸長度為256字節,否則L2CAP層傳輸超過23字節將自動分包。



3.2.4 手機app寫數據訪問(User_Write_Read_Data[64])測試



3.2.5 手機App讀數據訪問(User_Write_Read_Data[64])測試



3.2.6 手機App寫User_Write_Data[64]測試



3.2.7 手機App讀User_Read_Data[64]測試。



3.2.8 通知數據訪問(User_Notify_Data[64])測試



至此,整個驗證和測試過程完成。


04

小結



BLE經過多年的發展和迭代,BLE協議本身已是一個很復雜和龐大的協議族,如果希望開發自定義Service和GATT應用時,若對底層協議不熟悉的話還是較為困難的。但是由于STM32良好的生態,特別是借助于我們的STM32CubeMX+STM32Cube_FW_ WB固件包,使得我們可以快速、高效地開發出各種BLE應用。



完整內容請點擊“閱讀原文”下載原文檔。


訂閱號

關注STM32

視頻號


B站賬號


原文標題:應用筆記 | STM32WB基于Custom Template實現客戶定制BLE私有協議

文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6076

    文章

    45495

    瀏覽量

    670344
  • STM32
    +關注

    關注

    2309

    文章

    11162

    瀏覽量

    373444

原文標題:應用筆記 | STM32WB基于Custom Template實現客戶定制BLE私有協議

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    AN5289 使用 STM32WB 系列微控制器構建射頻應用筆記

    本文檔一步一步地指導設計人員基于 STM32WB 系列微控制器構建特定 Bluetooth低功耗或802.15.4 應用。它匯集了最重要的信息,并且列出了需要處理的方面。為了充分利用本文檔中的信息
    發表于 01-09 14:13 ?0次下載

    LAT1215+如何讓 STM32WB 在沒有 LSE 時運行 BLE 應用程序

    首先 LSE 可作為 STM32WB RF Wakeup 和 RTC 的時鐘源。STM32WB RF Wakeup 和 RTC 的時鐘源可配置為 LSE,LSE 時鐘相對比較穩定且準確,不需要校準
    發表于 01-09 10:55 ?0次下載

    STM32WB 系列微控制器 OTA 和無線固件更新應用筆記

    本文檔介紹了通過低功耗藍牙連接在 STM32WB 設備上進行 OTA 固件更新的過程。它講解如何使用 STM32Cube 固件包中提供的 OTA 應用程序,實現用戶應用程序、無線固件和固件升級服務的更新。
    發表于 01-08 14:50 ?0次下載

    MLPF-WB55-01E3:2.4 GHz低通濾波器的卓越之選

    STM32WB55Cx/Rx、STM32WB50Cx、STM32WB35Cx和STM32WB30Cx系列微控制器設計的2.4 GHz低通濾波器。它集成了阻抗匹配網絡和諧波濾波器,旨在最
    的頭像 發表于 12-31 17:20 ?1857次閱讀

    MLPF - WB55 - 01E3:2.4 GHz低通濾波器的深度解析

    的是STMicroelectronics推出的一款2.4 GHz低通濾波器——MLPF - WB55 - 01E3,它專為匹配STM32WB系列微控制器而設計,具有諸多出色特性。 文件下載: MLPF-WB55-01E3.pdf
    的頭像 發表于 12-17 17:35 ?675次閱讀

    SIP協議私有協議廣播區別

    電子發燒友網站提供《SIP協議私有協議廣播區別.docx》資料免費下載
    發表于 11-06 16:31 ?1次下載

    STM32WB1MMC藍牙低功耗模塊技術解析與應用設計

    微控制器,具有出色的接收器靈敏度和高輸出功率信號,因此可提供同類最佳的射頻性能。其低功耗特性可延長電池壽命、小紐扣電池或能量采集。STMicroelectronics STM32WB1MMC無需射頻專業知識,是加快應用開發和降低相關成本的理想方法。該模塊完全免協議堆棧版稅
    的頭像 發表于 10-25 16:20 ?1538次閱讀
    <b class='flag-5'>STM32WB</b>1MMC藍牙低功耗模塊技術解析與應用設計

    STM32WB連接擴展板技術解析:從硬件架構到開發實踐

    STMicroelectronics B-WB1M-WPAN1連接擴展板設有板載STM32WB1MMCH6。STMicro B-WB1M-WPAN1連接擴展板提供母頭-母頭STMOD+
    的頭像 發表于 10-23 09:40 ?625次閱讀
    <b class='flag-5'>STM32WB</b>連接擴展板技術解析:從硬件架構到開發實踐

    STM32WB09xE藍牙低功耗MCU技術解析

    STMicroelectronics STM32WB09 BLUETOOTH? 低功耗5.4 32位MCU嵌入最先進的2.4GHz射頻無線電外設,優化用于實現超低功耗和出色的無線電性能,可實現
    的頭像 發表于 10-20 09:29 ?660次閱讀
    <b class='flag-5'>STM32WB</b>09xE藍牙低功耗MCU技術解析

    使用不同的Bluetooth?適配器時,BLE速率較慢怎么解決?

    我已經在CYW20829中編寫了一個BLE服務器程序。 當我使用 Python 腳本將其連接到我的計算機時,它可以達到 800 Kbps,該腳本生成使用 Bleak 的 BLE 客戶端,并使
    發表于 06-27 06:28

    STM32WB5MMG模塊能否支持Thread轉WIFI?

    請幫忙推薦一款可以WIFI轉Sub-G/Zibber協議的芯片,希望做了無線認證。非常感謝。 1.STM32WB5MMG模塊能否支持Thread轉WIFI; 2.Nucleo-WBA55RG(主控
    發表于 06-04 07:21

    STM32WB5MMG模塊能否支持Thread轉WIFI?

    請幫忙推薦一款可以WIFI轉Sub-G/Zibber協議的芯片,希望做了無線認證。非常感謝。 1.STM32WB5MMG模塊能否支持Thread轉WIFI; 2.Nucleo-WBA55RG(主控
    發表于 04-24 06:12

    STM32WB5MMG模塊能否支持Thread轉WIFI?

    請幫忙推薦一款可以WIFI轉Sub-G/Zibber協議的芯片,希望做了無線認證。非常感謝。 1.STM32WB5MMG模塊能否支持Thread轉WIFI; 2.Nucleo-WBA55RG(主控
    發表于 04-22 08:22

    STM32WB09KEV6TR生成的代碼需要改哪些地方才能實現開啟BLE

    想問一下我利用STM32WB09KEV6TR生成的代碼還需要改哪些地方才能實現開啟BLE,并且發現GATT服務,麻煩大佬指點一下,我需要看哪些文檔~
    發表于 03-13 06:58

    請問STM32WB55客戶端應用接收的特征長度為什么更改無效呢?

    STM32WB55客戶端應用接收的特征長度為什么更改無效呢?
    發表于 03-10 06:18