零. 概述
主要介紹下藍牙協議堆疊開發板跑傳統藍牙串口協議SPP AT指令以及上位機操作步驟,以及原理
一. 宣告
本專欄文章我們會以連載的方式持續更新,本專欄計劃更新內容如下:

第一篇:藍牙綜合介紹 ,主要介紹藍牙的一些概念,產生背景,發展軌跡,市面藍牙介紹,以及藍牙開發板介紹,
第二篇:Transport層介紹,主要介紹藍牙協議堆疊跟藍牙芯片之前的硬體傳輸協議,比如基于UART的H4,H5,BCSP,基于USB的H2等
第三篇:傳統藍牙controller介紹,主要介紹傳統藍牙芯片的介紹,包括射頻層(RF),基帶層(baseband),鏈路管理層(LMP)等
第四篇:傳統藍牙host介紹,主要介紹傳統藍牙的協議堆疊,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的協議吧,
第五篇:低功耗藍牙controller介紹,主要介紹低功耗藍牙芯片,包括物理層(PHY),鏈路層(LL)
第六篇:低功耗藍牙host介紹,低功耗藍牙協議堆疊的介紹,包括HCI,L2CAP,ATT,GATT,SM等
第七篇:藍牙芯片介紹,主要介紹一些藍牙芯片的初始化流程,基于HCI vendor command的擴展
第八篇:附錄,主要介紹以上常用名詞的介紹以及一些特殊流程的介紹等,
另外,開發板如下所示,對于想學習藍牙協議堆疊的最好人手一套,以便更好的學習藍牙協議堆疊,相信我,學完這一套視頻你將擁有修改任何協議堆疊的能力(比如Linux下的bluez,Android下的bluedroid),

-------------------------------------------------------------------------------------------------------------------------
CSDN學院鏈接(進入選擇你想要學習的課程):https://edu.csdn.net/lecturer/5352?spm=1002.2001.3001.4144
藍牙交流扣扣群:970324688
Github代碼:https://github.com/sj15712795029/bluetooth_stack
入手開發板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708
藍牙學習目錄:https://blog.csdn.net/XiaoXiaoPengBo/article/details/107727900
--------------------------------------------------------------------------------------------------------------------------
二. STM32藍牙協議堆疊封裝使用AT command實作串口協議SPP的通信
使用步驟操作如下:
步驟 1)準備好代碼,從github下載下來最新的代碼(在上面有介紹Github連接)
步驟 2)連接好硬體(把模組插好,ST-LINK接上,TYPE-C debug先接上,按下按鈕可以看到藍色電源等亮起)

步驟 3)打開Keil工程檔案夾下的project\stm32f10x_bb_csr8x11_bt\stm32f10x_bb_csr8x11.uvprojx,配置SPP使能(在bt_config.h把PROFILE_SPP_ENABLE定義為1)

步驟4)編譯下載

此部分注意幾點:
- 下載需要ST-LINK驅動,我已經放在下載資料中的軟體工具檔案夾中
- STM32 F1的pack要有,我已經放在軟體工具檔案夾中的MDK下,沒有沒安裝過要安裝下,名字如下:
![]()
- 下載的debug要選ST-LINK

- 下載的時候要勾選Use micro lib

步驟6)打開串口工具(我用的是XCOM),然后做初始化動作,在發送串口敲BT_START,點擊發送,出來以下log就證明初始化通過了,接下來我們就準備開始測驗SPP(注意一點:不能勾選發送新行,否則會決議錯誤)

步驟6)使用手機的SPP軟體(在3-軟體工具\bt_spp_apk)來連接我們的開發板,連接成功如圖,然后敲SPP_SEND就可以發送固定字串(在代碼中寫死,你可以隨便來修改),然后apk發送的資料我們也可以通過開發板接受到了

三.STM32藍牙協議堆疊使用上位機實作串口協議SPP的通信
上位機的使用前4步跟AT一樣,我們我們就直接來講第五步,
打開我們工程原始碼1-BLUETOOTH\mcu_bt_tool\mcu_bt_tool\mcu_bt_tool\bin\Debug中的mcu_bt_tool.exe,當然你也可以直接用VS2010打開工程
步驟5)打開上位機,開啟串口,開啟藍牙功能

步驟6)進入藍牙串口界面,連接上后連接狀態跟連接地址以及空間都會可用,界面簡單易用,沒啥不懂的

另外:使用上位機的時候注意幾點:
① mcu_bt_tool.exe你如果想把可執行檔案拿到別的路徑單獨執行,那么必須要把Newtonsoft.Json.dll跟exe放在同一個路徑下,因為上位機是跟STM32用json溝通的
② 因為目前搜索是開啟的EIR,帶RSSI的,所以他會重復性上來同一個設備,我沒做根據同一個藍牙地址做顯示過濾,如果有興趣的人可以加上這一塊
四. 串口工具AT command以及上位機實作搜索的原理
https://blog.csdn.net/XiaoXiaoPengBo/article/details/108414679
原理在以上鏈接的第四小節
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/126229.html
標籤:其他
