STM32 上位機 測試藍芽電話功能功能(包括撥打電話/結束通話電話/接聽電話/Audio Transfer/獲取通話電話號碼/獲取本地電話號碼/啟用語音識別/獲取本地號碼/獲取運營商名字/3GPP指令)
零. 概述
本小節主要介紹下用PC上位機測試藍芽協議棧功能HFP Profile,包括
撥打電話,結束通話電話,接聽電話,Audio Transfer,獲取通話電話號碼,獲取本地電話號碼,啟用語音識別,獲取本地號碼,獲取運營商名字,3GPP指令.
注意:此上位機我已經整合了串列埠助手功能,所以不需要額外的開串列埠工具,集串列埠助手以及協議棧測試一體的工具
使用視訊如下:
超級酷炫!!上位機跟藍芽電話協議棧搭配,實現PC控制手機
一. 宣告
本專欄文章我們會以連載的方式持續更新,本專欄計劃更新內容如下:
第一篇:藍芽綜合介紹 ,主要介紹藍芽的一些概念,產生背景,發展軌跡,市面藍芽介紹,以及藍芽開發板介紹。
第二篇: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
--------------------------------------------------------------------------------------------------------------------------
二. 上位機-藍芽電話功能介紹
整個通訊架構如下:
上位機主要通過UART跟藍芽開發板通訊,用於傳送指令給藍芽開發板,並且用於接收藍芽開發板的回傳狀態
上位機-藍芽電話功能圖篇如下:
整個藍芽電話一共分幾個功能區:
① 串列埠配置區,此部分包括自動偵測熱插拔,串列埠開啟,關閉功能,注意波特率是115200,其他資料格式沒有開放出來(資料位是8,停止位為1,無奇偶校驗)
② 藍芽功能開啟/關閉按鈕,後續所有的功能要在藍芽開啟的條件下測試
③ HFP狀態資訊,包括HFP連線狀態,對端的BT mac地址,訊號強度顯示以及電量顯示
④ 部分HFP測試區,包括獲取運營商名字,獲取本地號碼,開啟/關閉語音信箱,擴充套件HFP的3GPP指令獲取手機制造商名字,擴充套件HFP的3GPP指令獲取手機元件名稱
⑤ 通話資訊區測試,包括通話狀態顯示,通話時間顯示,通話號碼顯示,接聽電話,結束通話電話,切換音源(Audio Transfer),設定MIC/SPK的印象,通話中鍵盤號碼傳送(DTMF)
⑥ 撥打電話號碼區
⑦ 串列埠助手區,包括接收區以及傳送區
注意:上位機跟MCU是通過串列埠指令互動json指令來實現控制以及狀態回傳的,所以在執行APP的時候需要把Newtonsoft.Json.dll放在跟exe一個路徑下,互動指令如下
① 上位機控制MCU的指令如下:
藍芽測試例程上位機傳送給開發板JSON格式 | ||||||||
說明 | FUNC | OPERATE | PARAM1 | PARAM2 | PARAM3 | PARAM4 | PARAM5 | PARAM6 |
HFP獲取運營商名字 | BT | HFP_NET_N | ||||||
HFP Audio Transfer | BT | BT_AUDIO_TRANSFER | ||||||
HFP接聽來電 | BT | HFP_ANSWER | ||||||
HFP結束通話電話 | BT | HFP_CALLEND | ||||||
HFP通過手機號撥打電話 | BT | HFP_CALLOUT_PN | 電話號碼 | |||||
HFP獲取本機電話號碼 | BT | HFP_LPN | ||||||
HFP獲取通話電話號碼 | BT | HFP_CLCC | ||||||
HFP設定MIC音量 | BT | HFP_VGM | MIC音量值 | |||||
HFP設定SPK音量 | BT | HFP_VGS | SPK音量值 | |||||
HFP傳送通話鍵盤號 | BT | HFP_DTMF | 鍵盤號 | |||||
HFP開啟語音識別功能 | BT | HFP_VGE | ||||||
HFP關閉語音識別功能 | BT | HFP_VGD | ||||||
HFP獲取廠商名稱 | BT | HFP_CGMI | ||||||
HFP獲取手機名稱 | BT | HFP_CGMM |
② MCU回傳給上位機的指令如下:
藍芽測試例程開飯傳送給上位機JSON格式 | ||||||||
說明 | FUNC | OPERATE | STATUS | PARAM1 | PARAM2 | PARAM3 | PARAM4 | PARAM5 |
HFP連線成功 | BT | BT_CON_RESULT | SUCCESS/FAIL | HFP | 藍芽地址 | |||
HFP斷開成功 | BT | BT_DISCON_RESULT | SUCCESS/FAIL | HFP | ||||
HFP SCO連線成功 | BT | BT_SCO_CON_RESULT | SUCCESS/FAIL | HFP | 藍芽地址 | |||
HFP SCO斷開成功 | BT | BT_SCO_DISCON_RESULT | SUCCESS/FAIL | HFP | ||||
HFP訊號強度更新 | BT | BT_HFP_SIGNAL_STRENGTH | SUCCESS | 訊號強度 | ||||
HFP漫遊狀態更新 | BT | BT_HFP_ROAM_STATUS | SUCCESS | 漫遊狀態 | ||||
HFP電量狀態更新 | BT | BT_HFP_BATT_LEVEL | SUCCESS | 電量狀態 | ||||
HFP運營商名稱更新 | BT | BT_HFP_OPERATOR | SUCCESS | 運營商名稱 | ||||
HFP電話狀態更新 | BT | BT_HFP_CALL_STATUS | SUCCESS | 電話狀態 | ||||
HFP電話Setup狀態更新 | BT | BT_HFP_CALL_SETUP | SUCCESS | 電話Setup狀態 | ||||
HFP本地號碼更新 | BT | BT_HFP_LOCAL_PN | SUCCESS | 本地號碼 | ||||
HFP電話號碼更新 | BT | BT_HFP_CALL_PN | SUCCESS | 電話號碼 | ||||
HFP廠商名稱更新 | BT | BT_HFP_MANU_ID | SUCCESS | 廠商名稱 | ||||
HFP裝置名稱更新 | BT | BT_HFP_MODULE_ID | SUCCESS | 裝置名稱 |
相關文章
- 電話號格式
- 電話號碼的字母序列
- 打電話
- 使用libphonenumber驗證電話號碼 - Baeldung
- 軟體測試--詳細判斷電話號碼
- OpenHarmony原始碼解析之電話子系統——通話流程原始碼
- 17_電話號碼的字母組合
- uniapp 實現打電話錄音功能APP
- 手機、電話號碼、郵箱、域名、身份證號的測試用例
- [實戰] Android 撥打電話Android
- 如何使用MacBook接打電話?Mac
- 【力扣】電話號碼的組合(回溯法)力扣
- 深圳SMT貼片加工廠家電話號碼
- 教你excel表格如何快速提取名字和電話號碼Excel
- 能打電話的膝上型電腦,Windows 10 打電話不是夢!Windows
- 和家人打電話
- 艾飛斯特智慧鎖400客服電話/全國維修總部電話(2024更新號碼)
- uiautomatorview/uiautomator2 獲取不到系統得輸入電話彈窗UIView
- 教你:怎麼快速把電話號碼批量匯入手機通訊錄
- (方法)怎麼快速把電話號碼批量匯入通訊錄
- Java中將電話號碼轉換為數字Java
- 17. 電話號碼的字母組合-c++C++
- 玩手機打電話識別監測系統
- 電話本系統python程式碼Python
- php一句話獲取獲取檔案目錄的方法PHP
- 移動web頁面如何自動探測電話號碼?Web
- leetcode日記17. 電話號碼的字母組合LeetCode
- 直播平臺開發,電話號碼正規表示式
- 教你excel篩選手機號碼公式和excel篩選正常電話號碼Excel公式
- Session:一款不需要電話號碼的開源通訊應用Session
- 電話號碼刪除了怎麼恢復?通訊錄刪除的號碼怎麼找回
- 騰訊電話面試面試
- 基於php的校園通訊錄電話號碼查詢系統PHP
- 聯通移動發聲:對涉嫌營銷擾民電話號碼依法處置
- 99廳電話-19188190807
- 電話機器人是如何實現對話的?機器人
- 玩手機打電話行為識別檢測系統
- 龍源國際電話@⒈⒎〇〇⒏⒎⒍⒏〇〇〇@龍源國際電話@我要一千萬