1. 概述
本文檔詳細描述了富芮坤FR306x_SDK 中定義的AT指令及其功能。這些指令主要用于藍牙(BLE)設(shè)備的控制和管理,涵蓋了設(shè)備連接、斷開、音頻控制、媒體控制、網(wǎng)絡(luò)配置等多個方面。
因為原廠沒有AT指令功能詳細說明文檔,說來也奇怪,有了代碼,還沒有功能說明,不是先有功能需求說明,才開發(fā)代碼嗎?
指令分類
2. AT指令格式
所有AT指令以 AT# 開頭,后跟具體的命令字符和參數(shù)。每個指令的具體格式如下:
AT#<Command><SubCommand>[Parameters]
<Command>:主命令字符(如A, B, C等)
<SubCommand>:子命令字符(如A, B, C等)
[Parameters]:可選參數(shù),具體取決于命令
3. 主要AT指令分類及功能
3.1 命令組 A (app_at_recv_cmd_A)
處理與底層硬件或協(xié)議相關(guān)的命令。
A:發(fā)送廠商自定義命令。
參數(shù):1個字節(jié)的地址值(16進制)
示例:AT#AA01 發(fā)送地址為0x01的廠商自定義命令。
B:發(fā)送廠商自定義命令。
參數(shù):2個字節(jié)的數(shù)據(jù)(16進制)
示例:AT#BA0102 發(fā)送數(shù)據(jù)為0x01和0x02的廠商自定義命令。
C:發(fā)送廠商自定義命令。
參數(shù):4個字節(jié)的地址值(16進制)
示例:AT#CA00000001 發(fā)送地址為0x00000001的廠商自定義命令。
D:發(fā)送廠商自定義命令。
參數(shù):8個字節(jié)的數(shù)據(jù)(16進制)
示例:AT#DA0000000100000002 發(fā)送數(shù)據(jù)為0x00000001和0x00000002的廠商自定義命令。
E:發(fā)送特定廠商命令。
參數(shù):無
示例:AT#AE 發(fā)送特定廠商命令。
G:打印 "hello world!"。
參數(shù):無
示例:AT#AG 打印 "hello world!"。
H:讀取指定地址的32位值并打印。
參數(shù):8個字節(jié)的地址值(16進制)
示例:AT#AH00000001 讀取地址為0x00000001的32位值并打印。
I:寫入指定地址的32位值。
參數(shù):8個字節(jié)的地址值和數(shù)據(jù)(16進制)
示例:AT#AI0000000100000002 寫入地址為0x00000001的32位值為0x00000002。
J:讀取外設(shè)寄存器值并打印。參數(shù):2個字節(jié)的地址值(16進制)
示例:AT#AJ01 讀取地址為0x01的外設(shè)寄存器值并打印。
K:寫入外設(shè)寄存器值。
參數(shù):2個字節(jié)的地址值和數(shù)據(jù)(16進制)
示例:AT#AK0102 寫入地址為0x01的外設(shè)寄存器值為0x02。
L:讀取指定地址的8位值并打印。
參數(shù):8個字節(jié)的地址值(16進制)
示例:AT#AL00000001 讀取地址為0x00000001的8位值并打印。
M:寫入指定地址的8位值。
參數(shù):8個字節(jié)的地址值和數(shù)據(jù)(16進制)
示例:AT#AM0000000102 寫入地址為0x00000001的8位值為0x02。
U:內(nèi)存轉(zhuǎn)儲。
參數(shù):8個字節(jié)的起始地址和2個字節(jié)的長度(16進制)
示例:AT#AU0000000108 從地址0x00000001開始轉(zhuǎn)儲8個字節(jié)。
V:擦除閃存。
參數(shù):8個字節(jié)的起始地址和8個字節(jié)的長度(16進制)
示例:AT#AV0000000100000008 從地址0x00000001開始擦除8個字節(jié)。
Y:打印內(nèi)存使用情況。
參數(shù):2個字節(jié)的類型(16進制)
示例:AT#AY01 打印類型為0x01的內(nèi)存使用情況。
3.2 藍牙連接管理命令組 B (app_at_recv_cmd_B)
處理藍牙設(shè)備的基本操作,如連接、斷開、掃描等。
A:創(chuàng)建音頻鏈接。
參數(shù):無
示例:AT#BA00 創(chuàng)建音頻鏈接。
B:停止廣播。
參數(shù):1個字節(jié)的狀態(tài)(16進制)
示例:AT#BB01 停止廣播。
C:開始掃描。
參數(shù):無
示例:AT#BC 開始掃描。
D:停止掃描。
參數(shù):無
示例:AT#BD 停止掃描。
E:連接到指定設(shè)備。
參數(shù):12個字節(jié)的MAC地址和1個字節(jié)的地址類型(16進制)
示例:AT#BE0123456789ab_01 連接到MAC地址為01:23:45:67:89:ab且地址類型為0x01的設(shè)備。
F:斷開連接。
參數(shù):無
示例:AT#BF 斷開連接。
H:發(fā)起查詢。
參數(shù):無
示例:AT#BH 發(fā)起查詢。
I:取消查詢。
參數(shù):無
示例:AT#BI 取消查詢。
J:創(chuàng)建服務(wù)鏈接。
參數(shù):12個字節(jié)的MAC地址(16進制)
示例:AT#BJ0123456789ab 創(chuàng)建服務(wù)鏈接。
K:創(chuàng)建編解碼器連接。
參數(shù):1個字節(jié)的類型(16進制)
示例:AT#BK01 創(chuàng)建編解碼器連接。
L:刪除Flash數(shù)據(jù)庫中的鏈接密鑰。
參數(shù):無
示例:AT#BL 刪除Flash數(shù)據(jù)庫中的鏈接密鑰。
N:連接到指定設(shè)備(HF+A2DP_SINK)。
參數(shù):12個字節(jié)的MAC地址(16進制)
示例:AT#BN0123456789ab 連接到MAC地址為01:23:45:67:89:ab的設(shè)備(HF+A2DP_SINK)。
O:連接到指定設(shè)備(HFG+A2DP_SOURCE)。
參數(shù):12個字節(jié)的MAC地址(16進制)
示例:AT#BO0123456789ab 連接到MAC地址為01:23:45:67:89:ab的設(shè)備(HFG+A2DP_SOURCE)。
P:斷開連接(不保存連接信息)。
參數(shù):12個字節(jié)的MAC地址(16進制)
示例:AT#BP0123456789ab 斷開連接(不保存連接信息)。
Q:斷開連接(保存連接信息)。
參數(shù):12個字節(jié)的MAC地址(16進制)
示例:AT#BQ0123456789ab 斷開連接(保存連接信息)。
R:連接到最后一個已連接設(shè)備。
參數(shù):無
示例:AT#BR 連接到最后一個已連接設(shè)備。
S:進入配對模式。
參數(shù):無
示例:AT#BS 進入配對模式。
T:退出配對模式。
參數(shù):無
示例:AT#BT 退出配對模式。
U:斷開配對并連接到指定設(shè)備。
參數(shù):12個字節(jié)的MAC地址(16進制)
示例:AT#BU0123456789ab 斷開配對并連接到MAC地址為01:23:45:67:89:ab的設(shè)備。
V:斷開當(dāng)前連接。
參數(shù):無
示例:AT#BV 斷開當(dāng)前連接。
X:連接到指定設(shè)備(自定義配置文件)。
參數(shù):12個字節(jié)的MAC地址和1個字節(jié)的配置文件(16進制)
示例:AT#BX0123456789ab01 連接到MAC地址為01:23:45:67:89:ab的設(shè)備(自定義配置文件)。
Y:斷開音頻鏈接。
參數(shù):無
示例:AT#BY 斷開音頻鏈接。
Z:設(shè)置主角色。
參數(shù):無
示例:AT#BZ 設(shè)置主角色。
3.3 電話和語音控制命令組 C (app_at_recv_cmd_C)
處理藍牙電話相關(guān)的命令。
A:接聽電話。
參數(shù):無
示例:AT#CA 接聽電話。
B:掛斷電話。
參數(shù):無
示例:AT#CB 掛斷電話。
C:重撥。參數(shù):無
示例:AT#CC 重撥。
D:撥打電話。
參數(shù):最多15個字節(jié)的電話號碼(ASCII)
示例:AT#CD1234567890 撥打號碼為1234567890的電話。
E:列出當(dāng)前通話。
參數(shù):無
示例:AT#CE 列出當(dāng)前通話。
F:切換SCO連接。
參數(shù):無
示例:AT#CF 切換SCO連接。
G:發(fā)送DTMF音。
參數(shù):1個字節(jié)的DTMF音(ASCII)
示例:AT#CG1 發(fā)送DTMF音為'1'。
H:報告揚聲器音量。
參數(shù):1個字節(jié)的音量值(16進制)
示例:AT#CH0a 報告揚聲器音量為0x0a。
I:發(fā)送HF命令。
參數(shù):無
示例:AT#CI 發(fā)送HF命令。
J:啟用/禁用語音識別。
參數(shù):1個字節(jié)的狀態(tài)(16進制)
示例:AT#CJ01 啟用語音識別。
K:檢查語音識別狀態(tài)。
參數(shù):無
示例:AT#CK 檢查語音識別狀態(tài)。
Z:發(fā)送時鐘命令。
參數(shù):無
示例:AT#CZ 發(fā)送時鐘命令。
3.4 其他雜項命令組 D (app_at_recv_cmd_D)
處理其他設(shè)備操作。
A:擦除閃存。
參數(shù):8個字節(jié)的起始地址和4個字節(jié)的長度(16進制)
示例:AT#DA0000000100000004 從地址0x00000001開始擦除4個字節(jié)。
B:枚舉記錄。
參數(shù):無
示例:AT#DB 枚舉記錄。
C:刪除記錄。
參數(shù):12個字節(jié)的MAC地址(16進制)
示例:AT#DC0123456789ab 刪除MAC地址為01:23:45:67:89:ab的記錄。
D:發(fā)送HCI命令。
參數(shù):無
示例:AT#DD 發(fā)送HCI命令。
3.5 藍牙多媒體命令組 E (app_at_recv_cmd_E)
處理藍牙媒體控制命令。
A:播放。
參數(shù):無
示例:AT#EA 播放。
B:暫停。
參數(shù):無
示例:AT#EB 暫停。
C:下一曲。
參數(shù):無
示例:AT#EC 下一曲。
D:上一曲。
參數(shù):無
示例:AT#ED 上一曲。
E:設(shè)置音量。
參數(shù):1個字節(jié)的音量值(16進制)
示例:AT#EE0a 設(shè)置音量為0x0a。
F:獲取媒體信息。
參數(shù):無
示例:AT#E
F 獲取媒體信息。G:獲取播放狀態(tài)。
參數(shù):無
示例:AT#EG 獲取播放狀態(tài)。
K:啟動A2DP流。
參數(shù):無
示例:AT#EK 啟動A2DP流。
L:暫停A2DP流。
參數(shù):無
示例:AT#EL 暫停A2DP流。
M:啟動雙A2DP流。
參數(shù):無
示例:AT#EM 啟動雙A2DP流。
3.6 網(wǎng)絡(luò)通信命令組 P (app_at_recv_cmd_P)
處理網(wǎng)絡(luò)相關(guān)命令(僅在BTDM_STACK_ENABLE_PAN啟用時有效)。
A:打開PAN連接。
格式:AT#PA
功能:打開與最后一個已連接的藍牙設(shè)備的PAN連接。
示例:AT#PA
B:創(chuàng)建UDP客戶端并連接。
格式:AT#PB<IP地址>_<端口號>
功能:創(chuàng)建一個UDP客戶端并連接到指定的IP地址和端口號。
示例:AT#PB192_168_001_100_8080
C:發(fā)送UDP數(shù)據(jù)。
格式:AT#PC
功能:通過已連接的UDP客戶端發(fā)送數(shù)據(jù)。
示例:AT#PC
D:創(chuàng)建TCP客戶端并連接。
格式:AT#PD<IP地址1>_<IP地址2>_<IP地址3>_<IP地址4>_<端口號>
功能:創(chuàng)建一個TCP客戶端并連接到指定的IP地址和端口號。
示例:AT#PD192_168_000_071_02333
E:測試DNS解析。
格式:AT#PE
功能:測試DNS解析功能,嘗試解析預(yù)定義的主機名。
示例:AT#PE
F:發(fā)送TCP數(shù)據(jù)。
格式:AT#PF<標(biāo)志位>
功能:通過已連接的TCP客戶端發(fā)送數(shù)據(jù),并指定發(fā)送標(biāo)志。
示例:AT#PF1
G:關(guān)閉TCP連接。
格式:AT#PG
功能:關(guān)閉已連接的TCP客戶端。
示例:AT#PG
4. 其他函數(shù)說明
app_at_cmd_recv_handler:根據(jù)接收到的命令調(diào)用相應(yīng)的處理函數(shù)。
功能:根據(jù)接收到的命令字符,調(diào)用相應(yīng)的命令處理函數(shù)。
參數(shù):
data:接收到的數(shù)據(jù)緩沖區(qū)。
length:數(shù)據(jù)長度。
app_at_recv_c:處理接收到的單個字符,構(gòu)建完整的AT指令。
功能:逐字符接收數(shù)據(jù),構(gòu)建完整的AT指令,并在指令完成后調(diào)用事件處理函數(shù)。
參數(shù):
c:接收到的字符。
app_at_rx_done:UART接收完成回調(diào)函數(shù)。
功能:在UART接收完成后調(diào)用,處理接收到的字符,并繼續(xù)接收下一個字符。
參數(shù):
handle:UART句柄。
app_at_init:初始化AT指令處理模塊。
功能:初始化AT指令處理模塊,啟動UART接收中斷。
參數(shù):
handle:UART句柄。
5. 總結(jié)
上述AT指令提供了對藍牙設(shè)備的全面控制,包括連接管理、音頻控制、媒體控制、網(wǎng)絡(luò)配置等功能。通過這些指令,用戶可以方便地進行設(shè)備調(diào)試和功能測試。每個命令都有詳細的格式和功能描述,便于開發(fā)者理解和使用。此外,其他輔助函數(shù)確保了AT指令處理模塊的正常運行,使得整個系統(tǒng)更加健壯和可靠。
希望這份文檔能夠幫助您更好地理解和使用富芮坤FR306x_SDK的AT指令。