FSC-BT1038 指令手册

介绍

[English]

描述

本设计指南适用于工程师开发 FSC-BT1038 系列蓝牙模组

模组默认参数

Name

FSC-BT1038A-XXXX

LE-Name

FSC-BT1038A-LE-XXXX

Secure Simple Pairing Mode

On

UART Baudrate

115200/8/N/1

硬件说明

引脚图

以FSC-BT1038A为例:

_images/BT1038_pin_map.png

引脚描述

Pin

Pin Name

Type

Pin Descriptions

4

I2S_CLK

I/O

I2S BCLK

5

I2S_IN

I

I2S DATA IN

6

I2S_OUT

O

I2S DATA OUT

7

I2S_WS

I/O

I2S SYNC

8

RESET

I

低电平复位

13

UART_TX

O

串口TX

14

UART_RX

I

串口RX

15

UART_CTS

I/O

串口流控脚(默认不需要接)

16

UART_RTS

I/O

串口流控脚(默认为PA脚)

17

LED0

I/O

配对模式时输出方波,蓝牙已连接输出高电平

18

LED1

I/O

BIS未连接输出低电平,已连接输出高电平

32

GND

GND

GND

33

VDD

VDD

3.3V供电,建议使用LDO供电

34

VREG_IN

I

开关机脚

36

VDD_IO

I

pio supply

43

MIC_LP

Audio

MIC0/Line_IN differential L input, positive

44

MIC_LN

Audio

MIC0/Line_IN differential L input, negative

45

MIC_BIAS

Audio

MIC Power Supplies

46

SPK_RN

Audio

Headphone/speaker differential R output, negative

47

SPK_RP

Audio

Headphone/speaker differential R output, positive

48

SPK_LN

Audio

Headphone/speaker differential L output, negative

49

SPK_LP

Audio

Headphone/speaker differential L output, positive

51

EXT_ANT

ANT

改变天线附近的0欧电阻,可以外接蓝牙天线

硬件设计说明

  • 模组简易测试只需要连接VDD/VDD_IO/VREG_IN/GND/UART_RX/UART_TX即可使用

  • 画完原理图后请发给飞易通进行审核,避免蓝牙距离达不到最佳效果

功能说明

Profiles & Features

  • SPP (Serial Port Profile)

  • GATTS (Generic Attribute Profile LE-Peripheral role)

  • GATTC (Generic Attribute Profile LE-Central role)

  • HFP-HF (Hands-Free Profile)

  • HFP-AG (Hands-Free-AG Profile)

  • A2DP-Sink (Advanced Audio Distribution Profile)

  • A2DP-Source (Advanced Audio Distribution Profile)

  • AVRCP-Controller (Audio/Video remote controller Profile)

  • AVRCP-Target (Audio/Video remote controller Profile)

  • HID-DEVICE (Human Interface Profile)

  • PBAP (Phonebook Access Profile)

  • MAP (Message Access Profile)

  • LEA (LE Audio)

GATT透传服务

类型

UUID

权限

描述

Service

0xFFF0

透传服务

Write

0xFFF2

Write,Write Without Response

APP发给模组

Notify

0xFFF1

Notify

模组发给APP

指令说明

规范说明

适用于整个文档

  • {} : 包括与{…}中的内容为可选项

  • << : 主机发给模组的 COMMAND

  • >> : 模组回复主机的 RESPONSE/EVENT

指令格式

AT+Command{=Param1{,Param2{,Param3…}}}<CR><LF>
  • 所有的指令使用 AT 开头,使用 <CR><LF> 结尾

  • <CR> 代表回车符,对应 HEX 为 0x0D

  • <LF> 代表换行符,对应 HEX 为 0x0A

  • 若指令包含参数,参数应使用 = 分隔

  • 若指令包含多项参数,参数应使用 , 分隔

  • 若指令有响应返回,响应使用 <CR><LF> 开始,使用 <CR><LF> 结束

  • 模组应当总是返回指令执行的结果 (成功返回 OK,失败时返回 ERROR)

Example:
读取模块蓝牙名称
<< AT+NAME
>> +NAME=FSC-BT1038A-XXXX
>> OK

当没有来电时接听电话
<< AT+HFPANSW
>> ERROR

Event格式

<CR><LF>+Indication{=Param1{,Param2{,Param3…}}}<CR><LF>
  • 所有的事件使用<CR><LF>开始, 使用<CR><LF>结束

  • 若事件包含参数, 参数应位于 “=” 后面

  • 若事件包含多项参数, 参数应使用 “,” 分割

Example:
手机端通过SPP协议发送”1234567890”
>> +SPPDATA=10,1234567890

拨打电话10086
>> +HFPSTAT=4
>> +HFPAUDIO=1
>> +HFPCID=10086
>> +HFPSTAT=6

指令表

通用指令

AT+HELP - 查询固件功能和命令说明

Command

AT+HELP

Response

<FIRMWARE FUNCTION: appropriate working scenario >
<OTA PATH: latest suitable firmware path on server for upgrade On-The-Air>
<ENABLED PROFILES: LINKS: ON/OFF>
<COMMAND SUMMARY: DESCRIPTION: PROFILE CATEGORY>

Description

使用help命令获取基本摘要信息

AT+VER - 读取固件版本

Command

AT+VER

Response

+VER=Param1,Param2,Param3

Param1

模块类型

Param2

固件版本

Param3

固件编译时间

Example:
<< AT+VER
>> +VER=FSC-BT1038A,V1.1.2,20250118
>> OK

AT+BAUD - 读/写串口波特率

Command

AT+BAUD{=Param}

Param

9600/19200/38400/57600/115200(default)/230400/460800/921600

Response

+BAUD=Param

Param

返回当前波特率

Description

模块将在接收到这条指令后,马上切换波特率

Example:读取波特率
<< AT+BAUD
>> +BAUD=115200
>> OK

Example: 设置波特率
<< AT+BAUD=9600
>> OK

AT+I2SCFG - 设置I2S格式

Command

AT+I2SCFG{=Param}

Param

以10进制位字段表示,每位表示

BIT[0]

0:disable; 1:enable

BIT[1]

0:master; 1:slave

BIT[2]

0:FS=48000Hz; 1:FS=44100Hz

BIT[3]

0:left justified; 1:right justified

BIT[4]

0:data 1 bit delay; 1:data no delay

BIT[5-6]

00: bit depth=16bits
01: bit depth=24bits
10: bit depth=32bits

Response

+I2SCFG=Param

Note

BT1038系列I2S设置从模式,需I2S主模式一直提供时钟,否则模块Panic

Example:常用组合配置如下:

1

I2S Master; Sample rate=48000Hz; Resolution=16bits; Bit clock= 48000*16*2ch=1.536Mhz

3

I2S Slave; Sample rate=48000Hz; Resolution=16bits; Bit clock= 48000*16*2ch=1.536Mhz

65

I2S Master; Sample rate=48000Hz; Resolution=32bits; Bit clock= 48000*32*2ch=3.072Mhz

67

I2S Slave; Sample rate=48000Hz; Resolution=32bits; Bit clock= 48000*32*2ch=3.072Mhz

AT+SPDIFCFG - SPDIF格式配置

Command

AT+SPDIFCFG{=Param}

Param

0-不使能音频输出SPIDF格式 1-使能音频输出为SPDIF格式

Description

若音频输出为spdif,I2S配置失效。

AT+SPKVOL - 设置扬声器音量

Command

AT+SPKVOL{=Param}

Param

Volume (‘+’ / ‘-’/ 0-15, default:15)

Description

调整输出音量,音乐时调整A2DP音量,通话时调整HFP音量,同时支持LEA模式下音量调节

AT+REBOOT - 软件复位

Command

AT+REBOOT

Response

OK

Description

模块将复位

AT+RESTORE - 恢复出厂设置

Command

AT+RESTORE

Response

OK

Description

模块将恢复为出厂设置

AT+BTEN - 开关蓝牙

Command

AT+BTEN{=Param}

Param

0-关闭蓝牙 1-打开蓝牙

Note

此命令掉电不保存

AT+PROFILE - 蓝牙Profile配置

Command

AT+PROFILE{=Param}

Param

以10进制位字段表示,每位表示

BIT[0]

SPP (Serial Port Profile)

BIT[1]

GATT Server (Generic Attribute Profile)

BIT[2]

GATT Client (Generic Attribute Profile)

BIT[3]

HFP-HF (Hands-Free Profile Handsfree)

BIT[4]

HFP-AG (Hands-Free Profile Audio Gateway)

BIT[5]

A2DP Sink (Advanced Audio Distribution Profile)

BIT[6]

A2DP Source (Advanced Audio Distribution Profile)

BIT[7]

AVRCP Controller (Audio/Video remote controller Profile)

BIT[8]

AVRCP Target (Audio/Video remote controller Profile)

BIT[9]

HID Keyboard (Human Interface Profile)

BIT[10]

PBAP Server (Phonebook Access Profile)

BIT[11]

Map Server (Message Access Profile)

BIT[12]

Bis Sink (Le audio broadcast sink)

BIT[13]

Cis Sink (Le audio unicast sink)

Response

+PROFILE=Param

Description

无法同时启用GATT Server and Client, HFP Sink and Source,
A2DP Sink and Source,AVRCP Controller and Target
如果改变Profile配置,模块将自动重启
Example:读取当前Profile
<< AT+PROFILE
>> +PROFILE=9385
Example:只使能A2DP Sink, HFP Sink,其他不使能
<< AT+PROFILE=160
>> OK
Example:只使能A2DP Source,HFP Source,其他不使能
<< AT+PROFILE=80
>> OK

AT+AUTOCONN - 设置蓝牙上电重连次数

Command

AT+AUTOCONN{=Param}

Param

(0~15, default:3)
(0) Turn Off
(1-15) Turn on and reconnect times

Response

+AUTOCONN=Param

Description

上电后,模块将尝试与配对列表中的设备建立连接

AT+STAT - 读所有状态

Command

AT+STAT

Response

+STAT=Param1, Param2, Param3…

Param1

DEVSTAT

Param2

SPPSTAT

Param3

GATTSTAT

Param4

HFPSTAT

Param5

A2DPSTAT

Param6

AVRCPSTAT

Param7

CISSTAT

Param8

PBSTAT

Param9

BISSTAT

AT+DEVSTAT - 读设备状态

Command

AT+DEVSTAT

Response

+DEVSTAT=Param

Param

以10进制位字段表示,

BIT[0]

0: Power Off; 1: Power On

BIT[1]

0: BR/EDR Not Discoverable; 1: BR/EDR Discoverable

BIT[2]

0: BLE Not Advertising; 1: BLE Advertising

BIT[3]

0: BR/EDR Not Scanning; 1: BR/EDR Scanning

BIT[4]

0: BLE Not Scanning; 1: BLE Scanning

Example:常用组合和描述

0

Device power off

1

Device power on

3

Device power on, BR/EDR Discoverable

5

Device power on, BR/EDR Not Discoverable, BLE Advertising

7

Device power on, BR/EDR Discoverable, BLE Advertising

13

Device power on, BR/EDR Not Discoverable, BLE Advertising, Scanning nearby BR/EDR devices

AT+ADDR - 读BR/EDR蓝牙MAC地址

Command

AT+ADDR

Response

+ADDR=Param

Param

模块的BR/EDR蓝牙MAC地址(12 Bytes ASCII)

Example:
<< AT+ADDR
>> +ADDR=DC0D30010203
>> OK

AT+LEADDR - 读BLE蓝牙MAC地址

Command

AT+LEADDR

Response

+LEADDR=Param

Param

模块的BLE蓝牙MAC地址(12 Bytes ASCII)

AT+NAME - 读/写BR/EDR蓝牙名称

Command

AT+NAME{=Param1{,Param2}}

Param1

BR/EDR蓝牙名称(1~31 Bytes ASCII)

Param2

使能MAC地址后缀(0/1,default:1)
0: 关闭后缀
1: 开启后缀“-XXXX”(MAC地址后4Byte)

Response

+NAME=Param

Param

蓝牙名称

Description

如果存在参数则设置蓝牙名称,否则只是读取

Example:
读取BR/EDR蓝牙名称
<< AT+NAME
>> +NAME=FSC-BT1038-XXXX
>> OK

设置BR/EDR蓝牙名称,且关掉后缀
<< AT+NAME=ABC,0
>> OK

设置BR/EDR蓝牙名称为“ABC”并自动添加地址后缀
<< AT+NAME=ABC,1
>> OK

AT+LENAME - 读/写BLE蓝牙名称

Command

AT+LENAME{=Param1{,Param2}}

Param1

BLE蓝牙名称(1~25 Bytes ASCII)

Param2

使能MAC地址后缀(0/1,default:1)
0: 关闭后缀
1: 开启后缀“-XXXX”(MAC地址后4Byte)

Response

+LENAME=Param

AT+SSP - 读/写BR/EDR配对模式

Command

AT+SSP{=Param}

Param

Pairing mode (0~2, default:1)
(0) Legacy pairing, use pin code for pairing
(1) Secure simple pairing, auto pairing
(2) Secure simple pairing, display yes/no in pairing

Description

因为BT1038 蓝牙为5.4 带LEA功能 BT1038系列不支持ssp为0的参数

Response

+SSP=Param

Note

need reoot.

AT+COD: 读/写设备类型

Command

AT+COD=Param

Param

设备类型(6 bytes ASCII, default:240404 Handsfree device)

Response

+COD=Param

相关配置参考 COD.

AT+PAIR: 读/写BR/EDR/BLE可发现模式

Command

AT+PAIR=Param

Param

Mode(0-1)
0: Leave BR/EDR/BLE discoverable mode (stop advertising/broadcasting)
1: Enter BR/EDR/BLE discoverable mode (start advertising/broadcasting)

Description

如果未连接设备(BR/EDR或BLE),模块将始终可被发现;
如果与远程设备连接,模块将不可被发现,除非收到此命令

AT+PLIST - 读取/清除配对记录

Command

AT+PLIST{=Param}

Param

(0/1~8/12 Bytes MAC address)
(0) 清除所有配对记录
(1~6) 清除指定索引的配对记录
(MAC) 清除指定地址的配对记录

Response1

+PLIST=Param1,Param2{,Param3}

Param1

(1~6) 配对设备序号

Param2

(MAC)配对设备的MAC地址

Param3

(UTF8)配对设备的蓝牙名称

Response2

+PLIST=E 配对记录查询完成

Example:读模块的配对记录
<< AT+PLIST
>> +PLIST=1,1C5CF226D773, iPhone12
+PLIST=2,A0BC30075421, Samsung S8
+PLIST=E
>> OK

Example:清除模块的所有配对记录
<< AT+PLIST=0
>> OK

AT+DSCA - 断开所有连接

Command

AT+DSCA

Description

模块断开与远程设备的所有蓝牙连接包含LEA

AT+TPMODE - 打开/关闭透传模式

Command

AT+TPMODE{=Param}

Param

模式(0~1,默认0) 0: 指令模式 1: 透传模式

Response

+TPMODE=Param

Description

当在SPP/GATT协议下连接并且打开透传模式时,AT指令将会被禁用,
通过UART接收的每个字节将被发送到远端

AT+AUXCFG - 输入模式配置

Command

AT+AUXCFG=Param1

Param1

mode(0-3,default:)
0: BT模式
1: LineIn模式
2: Spdif模式
3: I2S模式
4: USB模式

Description

该指令用于配置模块的输入模式,BT1006A、BT1026C、BT1026D 不支持spdif
BT1026A、BT1026B、BT1026D设置成spdif后,PA_MUTE脚将修改至20脚
BT1038 不支持spdif,I2S输入
Example:设置LineIn方式输入
<< AT+AUXCFG=1
>> OK
部分老固件使用AT+LINECFG=1指令设置

AT+MUTEPIO - 设置PA_MUTE管脚

Command

AT+MUTEPIO{=Param}

Param

PIO(0-63, 1038A default:PIO23, BT1038A BT1038B default:PIO2)

AT+LINEPIO - 设置LineIn管脚

Command

AT+LINEPIO{=Param}

Param

PIO(0-63, BT1038A BT1038B default:PIO26)

Description

低电平有效

AT+MICMUTE - 静音MIC

Command

AT+MICMUTE=Param

Param

0-不静音 1-静音

Description

通话时静音本地麦克风

AT+SPKMUTE - 静音Speaker

Command

AT+MICMUTE=Param

Param

0-不静音 1-静音

HFP指令

AT+HFPSTAT - 读HFP状态

Command

AT+HFPSTAT

Response

+HFPSTAT=Param

Description

格式说明参考: +HFPSTAT - HFP状态

AT+HFPCONN - 建立HFP连接

Command

AT+HFPCONN{=Param}

Param

目标设备MAC地址(12 Bytes ASCII)

Description

如果参数不存在,模块将重新连接到最后一个HFP配对过的设备

Example:连接最后一个配对过的设备
<< AT+HFPCONN
>> OK
Example:连接指定MAC地址的设备
<< AT+HFPCONN=1C5CF226D773
>> OK

AT+HFPDISC - 断开HFP连接

Command

AT+HFPDISC

Description

断开当前与远程设备的HFP连接

AT+HFPRES - 读/写HFP重采样率

Command

AT+HFPRES{=Param}

Param

HFP通话时的采样率,0-采样率:16K, 1-重采样,采样率44.1K或48K

Response

+HFPSR=Param

Description

默认打开重采样,采样率由I2SCFG配置决定

Note

BT1038 V1.0.1不支持该命令功能

AT+HFPDIAL - 重拨/拨打电话号码

Command

AT+HFPDIAL{=Param}

Param

电话号码 (1~25 Bytes ASCII)

Description

如果存在参数,请拨打指定号码,否则重拨

Example:重拨
<< AT+HFPDIAL
>> OK
Example:拨打号码 “075527924639”
<< AT+HFPDIAL=075527924639
>> OK

AT+HFPDTMF - 发送DTMF

Command

AT+HFPDTMF{=Param}

Param

DTMF (0~9/#/*)

Example:通话时发送DTMF “#”
<< AT+HFPDTMF=#
>> OK

AT+HFPANSW - 来电接听

Command

AT+HFPANSW

Description

来电接听

AT+HFPCHUP - 来电去电拒接/挂断

Command

AT+HFPCHUP

Description

拒绝来电或挂断去电/通话

AT+HFPADTS - 语音切换

Command

AT+HFPADTS=Param

Param

0: 将语音音频从模块传输到远程设备
1: 将语音音频从远程设备传输到模块

Description

如果参数缺省,则交替切换

AT+HFPVR - 开始/停止远程设备的语音识别

Command

AT+HFPVR=Param

Param

0-停止 1-开始

Description

开始/停止远程设备的语音识别(例如iOS设备的Siri)

AT+HFPSCO - SCO配置

Command

AT+HFPSCO=Param

Param

0-default 1-always to HF 2-always to AG

AT+HFPBATT - 发送设备电池电量

Command

AT+HFPBATT=Param

Param

level(0-9)

A2DP/AVRCP指令

AT+A2DPSTAT - 读A2DP状态

Command

AT+A2DPSTAT

Response

+A2DPSTAT=Param

Description

格式说明参考: +A2DPSTAT - A2DP状态

AT+A2DPCONN - 建立A2DP连接

Command

AT+A2DPCONN{=Param}

Param

目标设备MAC地址(12 Bytes ASCII)

Description

如果参数不存在,模块将重新连接到最后一个A2DP配对过的设备

AT+A2DPDISC - 断开A2DP连接

Command

AT+A2DPDISC

Description

断开当前与远程设备的A2DP连接

AT+A2DPCFG - 读/写A2DP配置

Command

AT+A2DPCFG=Param

Param

以10进制位字段表示,每位表示:

BIT[0]

0: Disable AAC Codec 1: Enable AAC Codec

BIT[1]

0: Disable APTX Codec 1: Enable APTX Codec

BIT[2]

0: Disable APTX-LL Codec 1: Enable APTX-LL Codec

BIT[3]

0: Disable APTX-HD Codec 1: Enable APTX-HD Codec

BIT[4]

0: Disable APTX-AD Codec 1: Enable APTX-AD Codec

BIT[5]

0: Disable LDAC Codec 1: Enable LDAC Codec

Example:读当前A2DP配置
<< AT+A2DPCFG
>> +A2DPCFG=0
>> OK
Example:设置A2DP配置: 只使能AAC Codec.
<< AT+A2DPCFG=1
>> OK

AT+A2DPDEC - 读A2DP解码

Command

AT+A2DPDEC

Response

+A2DPDEC=Param

Param

1:SBC 2:AAC 3:APTX 4:APTX-HD 5:APTX-AD

AT+A2DPRES - 设置重采样使能

Command

AT+A2DPRES

Response

+A2DPRES=Param

Param

0:关闭重采样 1:开启重采样

此命令作用于设置为I2S音频输出将LRCLK固定为44.1K或者48K输出

AT+AVRCPSTAT - 读AVRCP状态

Command

AT+AVRCPSTAT

Response

+AVRCPSTAT=Param

Description

格式说明参考: +AVRCPSTAT - AVRCP状态

AT+AVRCPCFG - 读/写AVRCP配置

Command

AT+AVRCPCFG{=Param}

Param

以10进制位字段表示,default:9,每位表示:

BIT[0]

自动获取音乐ID3信息(标题,艺术家,专辑).默认:1

BIT[1-4]

如果大于0,则自动获取音乐状态(播放进度)。 默认:5(second)

BIT[5]

开启音量同步设置。默认:0

Example: 读AVRCP配置
<< AT+AVRCPCFG
>> +AVRCPCFG=1
OK
Example: 设置成1秒上报播放进度
<< AT+AVRCPCFG=3
>> OK

AT+PLAYPAUSE - 播放/暂停

Command

AT+PLAYPAUSE

Description

根据当前播放状态将播放或暂停命令发送到远端媒体播放器

AT+PLAY - 播放

Command

AT+PLAY

Description

发送播放命令到远端媒体播放器

AT+PAUSE - 暂停

Command

AT+PAUSE

Description

发送暂停命令到远端媒体播放器

AT+STOP - 停止

Command

AT+STOP

Description

发送停止命令到远端媒体播放器

AT+FORWARD - 下一曲

Command

AT+FORWARD

Description

发送下一曲命令到远端媒体播放器

AT+BACKWARD - 上一曲

Command

AT+BACKWARD

Description

发送上一曲命令到远端媒体播放器

AT+FFWD - 快进

Command

AT+FFWD=Param

Param

0-发送释放快进命令, 1-发送按下快进命令

Description

发送快进命令到远端媒体播放器

AT+RWD - 后退

Command

AT+RWD=Param

Param

0-发送释放后退命令, 1-发送按下后退命令

Description

发送后退命令到远端媒体播放器

PBAP指令

AT+PBSTAT - 读PBAP状态

Command

AT+PBSTAT

Response

+PBATAT=Param

Description

格式说明参考: +PBSTAT - PBAP状态

AT+PBCONN - 建立PBAP连接

Command

AT+PBCONN{=Param}

Param

目标设备MAC地址(12 Bytes ASCII)

Description

如果参数不存在,模块将使用当前HFP的地址连接.
默认固件支持,发送AT+PBDOWN时自动连接PBAP

AT+PBDISC - 断开PBAP连接

Command

AT+PBDISC

Description

断开当前与远程设备的PBAP连接

AT+PBDOWN - 下载电话本

Command

AT+PBDOWN=Param1{,Param2}

Param1

电话本类型(0-5)
(0) Phonebook (SIM Storage)
(1) Phonebook (Phone Storage)
(2) Received call log
(3) Dialed call log
(4) Missed call log
(5) All call log

Param2

下载数量 (1~65535, default:3000 for phonebook; 50 for call log)

Description

对于某些手机(例如iPhone),必须在手机的蓝牙设置中打开联系人下载权限
请参阅应用场景: Phonebook下载

SPP指令

AT+SPPSTAT - 读SPP状态

Command

AT+SPPSTAT

Response

+SPPATAT=Param

Description

格式说明参考: +SPPSTAT - SPP状态

AT+SPPCONN - 建立SPP连接

Command

AT+SPPCONN{=Param}

Param

目标设备MAC地址(12 Bytes ASCII)

Note

BT1038 V1.0.1不支持该命令功能

AT+SPPDISC - 断开SPP连接

Command

AT+SPPDISC

Description

断开当前与远程设备的SPP连接

AT+SPPSEND - 通过SPP发数据

Command

AT+SPPSEND=Param1,Param2

Param1

Payload length (1~492)

Param2

Payload (1~492 Bytes)

Description

如果透传模式开启,该指令将会被禁用

Example: 通过SPP给远程设备发送数据 “1234567890”
<< AT+SPPSEND=10,1234567890
>> OK

GATT指令

AT+GATTSTAT - 读GATT状态

Command

AT+GATTSTAT

Response

+GATTATAT=Param

Description

格式说明参考: +GATTSTAT - GATT状态

AT+GATTDISC - 断开GATT连接

Command

AT+GATTDISC

Description

断开当前与远程设备的GATT连接

AT+GATTSEND - 通过GATT发数据

Command

AT+GATTSEND=Param1,Param2

Param1

Payload length (1~492)

Param2

Payload (1~492 Bytes)

Description

如果透传模式开启,该指令将会被禁用

Example: 通过GATT给远程设备发送数据 “1234567890”
<< AT+GATTSEND=10,1234567890
>> OK

BIS指令

AT+BISSTAT - 读BIS状态

Command

AT+BISSTAT

Response

+BISATAT=Param

Description

格式说明参考: +BIS - BIS状态

AT+BISSCAN - BIS 扫描广播源

Format

AT+BISSCAN=Param

Param

扫描超时时间

Example: 通过AT+BISSCAN = 10 设置扫描时长 单位为:S
+BISSTAT=2
+BIS=1,-55,15,9,DC0D30000009,FSC-BP410-0009
+BIS=2,-64,15,98,DC0D30000062,FSC-BP410-0062
+BIS=3,-50,15,43356,00025B00FF0E,FSC-BP415-ff0e
+SCAN=E

AT+BISADD - BIS添加同步广播源

Format

AT+BISADD=Param1,Param2

Param1

广播advertising_sid

Param2

广播broadcast_id

Example: 通过AT+BISADD=15,62640 添加同步搜索到的BIS广播源
+BISADD=15,62640
OK

AT+BISREMOVE - BIS移除添加同步的广播源

Format

AT+BISREMOVE

Param1

NULL 无参数

AT+BISPLAYPAUSE - BIS播放暂停控制

Format

AT+BISPLAYPAUSE=Param1

Param1

NULL 无参数

AT+BISPLAY - BIS播放

Format

AT+BISPLAY=Param1

Param1

NULL 无参数

AT+BISPAUSE - BIS暂停

Format

AT+BISPAUSE=Param1

Param1

NULL 无参数

CIS指令

AT+CISSTAT - 读CIS状态

Command

AT+CISSTAT

Response

+CISSTAT=Param

Description

格式说明参考: +CISSTAT - CIS状态

GAME模式指令

AT+GAMEENABLE - 游戏模式使能

Format

AT+GAMEENABLE=Param

Param

NULL

目前游戏模式只支持经典蓝牙模式下 打开此模式AAC,SBC对应的编码格式延时
从动态时延设置为固定100ms低延时状态获取更好的游戏体验

AT+GAMEDISABLE - 游戏模式关闭

Format

AT+GAMEDISABLE=Param

Param

NULL

Events表

通用指示

+PAIRED - 配对结果

Format

+PAIRED=Param

Param

当前配对设备的MAC地址(12 Bytes ASCII)

HFP指示

+HFPSTAT - HFP状态

Format

+HFPSTAT=Param

Param

(0~6)
(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected
(4) Outgoing call
(5) Incoming call
(6) Active call

+HFPDEV - HFP远端设备信息

Format

+HFPDEV=Param1{,Param2}

Param1

(12 Bytes ASCII), 当前HFP连接远端设备的MAC地址

Param2

(UTF8), 当前HFP连接远端设备的名称

Example: HFP连接成功
>> +HFPDEV=1C5CF226D774, iPhone

+HFPCID - 来电/去电电话号码

Format

+HFPCID=Param

Param

(1~25 Bytes ASCII), 电话号码

Example: 拨打10086
<< AT+HFPDIAL=10086
>> +HFPSTAT=4
>> +HFPCID=10086
>> +HFPCIE=China Mobile
>> +HFPAUDIO=1

例如: 来电号码13265463800
>> +HFPSTAT=5
>> +HFPCID=13265463800
>> +HFPCIE=Jerry
>> +HFPAUDIO=1

+HFPCIE - 来电/去电电话名称

Format

+HFPCIE=Param

Param

(UTF8), 电话名称

Note

此事件苹果手机支持,安卓大多数手机不支持

+HFPAUDIO - HFP语音音频状态

Format

+HFPAUDIO=Param

Param

(0) HFP语音音频断开连接,音频输入/输出切换到远端设备
(1) HFP语音建立连接,音频输入/输出切换到模块

+HFPSIG - HFP远端设备网络信号强度

Format

+HFPSIG=Param

Param

(0~5) 远端设备的网络信号强度

+HFPROAM - HFP远端设备漫游状态

Format

+HFPROAM=Param

Param

(0/1) 远端设备的漫游状态

+HFPBATT - HFP远端设备电池电量

Format

+HFPBATT=Param

Param

(0~5) 远程设备的电池电量

+HFPNET - HFP远端设备网络运营商

Format

+HFPNET=Param

Param

(UTF8)远程设备的网络运营商选择

+HFPMANU - HFP远端设备制造商

Format

+HFPMANU=Param

Param

(UTF8)远程设备制造商

+HFPNUM - HFP远端设备本机号码

Format

+HFPNUM=Param

Param

(ASCII)远端设备的本机号码

+HFPIBR - HFP远端设备支持来电铃声

Format

+HFPIBR=Param

Param

0-不支持 1-支持

Description

指示当前连接的手机是否支持来电铃声

A2DP/AVRCP指示

+A2DPSTAT - A2DP状态

Format

+A2DPSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected
(4) Paused
(5) Streaming

+A2DPDEV - A2DP远端设备信息

Format

+A2DPDEV=Param1{,Param2}

Param1

(12 Bytes ASCII), 当前A2DP连接远端设备的MAC地址

Param2

(UTF8), 当前A2DP连接远端设备的名称

+AVRCPSTAT - AVRCP状态

Format

+AVRCPSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected

+PLAYSTAT - 媒体播放器播放状态

Format

+PLAYSTAT=Param

Param

(0) Stopped
(1) Playing
(2) Paused
(3) Fast Forwarding
(4) Fast Rewinding

+TRACKSTAT - 媒体播放器播放进度

Format

+TRACKSTAT=Param1,Param2,Param3

Param1

(0~4), 媒体播放器状态

Param2

(Decimal ASCII),当前音乐播放的时间(毫秒)

Param3

(Decimal ASCII),当前音乐的总时间(毫秒)

+TRACKINFO - 媒体音乐信息

Format

+TRACKINFO=Param1,Param2,Param3

Param1

标题

Param2

艺术家

Param3

专辑

Example: 手机播放歌曲“Creep-Radio Head”
>> +TRACKINFO=Creep , Radiohead , Pablo Honey

PBAP指示

+PBSTAT - PBAP状态

Format

+PBSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected
(4) Downloading

+PBCNT - 远端设备的电话簿条目

Format

+PBCNT=Param

Param

远端设备的电话簿条目

+PBDATA - 电话本数据

Format1

+PBDATA=Param1<FF>Param2<FF>Param3{<FF>Param4}

Param1

类型
(0) Phonebook (SIM Storage)
(1) Phonebook (Phone Storage)
(2) Received call log
(3) Dialed call log
(4) Missed call log

Param2

电话名称

Param3

电话号码

Param4

(15 Bytes ASCII), 当前下载通话记录,则有此参数
Format:
Year(4Bytes) Month(2Bytes) Day(2Bytes) T(1Byte) Hour(2Bytes)
Minute(2Bytes) Second(2Bytes). e.g. 20161012T152826 represents
2016/10/12/15/28/26

Format2

+PBDATA=E 下载完成

Description

某些手机可能没有通话时间

Example: 下载所有电话本
<< AT+PBDOWN=1
>> +PBCNT=234
+PBDATA=1,Jack,18219146201
+PBDATA=1,kenan,8613771972680
……
+PBDATA=E

Example: 下载10条已拨电话
<< AT+PBDOWN=3,10
>> +PBDATA=3,China Mobile,10086,20171013T103516
+PBDATA=3,Jerry,18688967507,20171012T152826
……
+PBDATA=E

SPP指示

+SPPSTAT - SPP状态

Format

+SPPSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected

+SPPDATA - SPP接收数据

Format

+SPPDATA=Param1,Param2

Param1

Payload length

Param2

Payload

Example: 通过SPP从远端设备接收到数据“ 1234567890”
<< +SPPDATA=10,1234567890

GATT指示

+GATTSTAT - GATT状态

Format

+GATTSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected

+GATTDATA - GATT接收数据

Format

+GATTDATA=Param1,Param2

Param1

Payload length

Param2

Payload

Example: 通过GATT从远端设备接收到数据“ 1234567890”
<< +GATTDATA=10,1234567890

BIS指示

+BIS - BIS状态

Format

+BISSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Scanning
(3) Connected
(4) Paused
(5) Streaming

+BIS - BIS扫描结果

Format

+BIS=Param1,Param2,Param3,Param4,Param5,Param6

Param1

下标

Param2

信号强度

Param3

广播sid

Param4

广播id

Param5

mac地址

Param6

设备名

CIS指示

+CISSTAT - CIS状态

Format

+CISSTAT=Param

Param

(0) Unsupported
(1) LeaUnicasSink_idle
(2) LeaUnicasSink_disconnected
(3) LeaUnicasSink_ase_enabling
(4) LeaUnicasSink_ase_streamming

应用场景

Profile初始化及修改参数

下图展示了Profile初始化以及修改名称

@startuml
hide footbox
skinparam sequenceMessageAlign center

box  #LightBlue
participant Host as host
participant Blueware as bt
end box

rnote over host, bt: Profile初始化

bt -> host: +PWRSTAT=1
bt -> host: +VER=FSC-BT1038,V1.1.2,20250118
bt -> host: +PROFILE=24747
bt -> host: +SPPSTAT=1
bt -> host: +GATTSTAT=1
bt -> host: +A2DPSTAT=1
bt -> host: +AVRCPSTAT=1
bt -> host: +HFPSTAT=2
bt -> host: +BISSTAT=1
bt -> host: +CISSTAT=1
bt -> host: +DEVSTAT=7 (可发现打开,手机可以找到bt且可以连接)

rnote over host, bt: 修改蓝牙名称CARKIT,且不带地址码后缀,并校验
host -> bt: AT+NAME
bt -> host: AT+NAME=FSC-BT1038-1E49
host -> bt: AT+NAME=CARKIT,0
bt -> host: OK
host -> bt: AT+NAME
bt -> host: +NAME=CARKIT

@enduml

MCU 修改设备名CARKIT参考代码,修改任何参数建议先查询再修改最后校验:

 1void change_name(void)
 2{
 3    uart_send("AT+NAME\r\n");
 4    if(uart_read("+NAME",name_buf))
 5    {
 6        if(memcmp(name_buf,"CARKIT",6))
 7        {
 8            uart_send("AT+NAME=CARKIT,0\r\n");      //defalut disable MAC address suffix
 9            uart_send("AT+NAME\r\n"); // read bt name
10            if(uart_read("+NAME",name_buf))
11            {
12                if(memcmp(name_buf,"CARKIT",6))
13                {
14                    //change name fail
15                }
16                else
17                {
18                    //change name success
19                }
20            }
21        }
22    }
23}

经典蓝牙接收模式连接

@startuml
hide footbox
skinparam sequenceMessageAlign center

box  #LightBlue
participant Host as host
participant Blueware as bt
end box

rnote over host, bt: Profile初始化

bt -> host: +PROFILE=1195
bt -> host: ...
bt -> host: +DEVSTAT=7

rnote over host, bt: 手机搜索BT并发起连接
bt -> host: +A2DPSTAT=2
bt -> host: +A2DPSTAT=3 (A2DP已连接)
bt -> host: +A2DPDEV=8C861E94A09E,Navy
bt -> host: +AVRCPSTAT=3 (AVRCP已连接)
bt -> host: +HFPSTAT=3 (HFP已连接)
bt -> host: +HFPDEV=8C861E94A09E,Navy
bt -> host: +HFPSIG=3
bt -> host: +HFPBATT=4
bt -> host: +HFPROAM=0
bt -> host: +HFPNUM=8618620277271
bt -> host: +HFPMANU=AppleInc.

host -> bt: +HFPDIAL=10086 (拨打"10086")
bt -> host: OK
bt -> host: +HFPSTAT=4,10086
bt -> host: +HFPAUDIO=1 (建立audio)
bt -> host: +HFPSTAT=6,10086 (call active)
host -> bt: AT+HFPCHUP(挂断电话)
bt -> host: +HFPSTAT=3
bt -> host: +HFPAUDIO=0 (断开audio)

host -> bt: AT+PLAY(播放音乐)
bt -> host: +A2DPSTAT=5
bt -> host: +PLAYSTAT=1
bt -> host: +TRACKINFO=song,artist,album
bt -> host: +TRACKSTAT=1,1000,240000
bt -> host: +TRACKSTAT=1,2000,240000
host -> bt: AT+PAUSE(暂停音乐)
bt -> host: +PLAYSTAT=2
bt -> host: +A2DPSTAT=3

@enduml

LE Audio Broadcast 扫描连接

@startuml
hide footbox
skinparam sequenceMessageAlign center

box  #LightBlue
participant Host as host
participant Blueware as bt
end box

rnote over host, bt: Profile初始化

bt -> host: +PROFILE=1195
bt -> host: ...
bt -> host: +DEVSTAT=7

rnote over host, bt: 模块发起广播源扫描
bt -> host: AT+BISSCAN=5
bt -> host: +BIS=1,-61,15,98,DC0D30000062,FSC-BP410-0062
bt -> host: +BIS=2,-48,15,43356,00025B00FF0E,FSC-BP415-ff0e
bt -> host: +SCAN=E
rnote over host, bt: 模块发起连接广播源的指令
bt -> host: AT+BISADD=15,43356
bt -> host: +BISADD=15,43356
bt -> host: OK
bt -> host: +BISSTAT=4
bt -> host: +BISSTAT=5


@enduml

Phonebook下载

@startuml
hide footbox
skinparam sequenceMessageAlign center

box  #LightBlue
participant Host as host
participant Blueware as bt
end box

rnote over host, bt: HFP connected

bt -> host: ...
bt -> host: +HFPSTAT=3

rnote over host, bt: 下载所有电话本
host -> bt: AT+PBDOWN=1
bt -> host: +PBSTAT=2
bt -> host: +PBSTAT=3 (PBAP已连接)
bt -> host: +PBSTAT=4 (PBAP下载中)
bt -> host: +PBDATA=1,本机号码,+8618620277272
bt -> host: +PBDATA=1,张三,0571-85592192
bt -> host: ...
bt -> host: +PBDATA=1,jerry,18909731215
bt -> host: +PBDATA=E (下载完成)
bt -> host: +PBSTAT=3


rnote over host, bt: 下载50条通话记录
host -> bt: AT+PBWODN=5,50
bt -> host: +PBDATA=3,yidong,+10086,20200213T114247
bt -> host: ...
bt -> host: +PBDATA=2,andy,85592192,20200212T104202
bt -> host: +PBDATA=E
bt -> host: +PBSTAT=3

@enduml

附录

下载 PDF版本

下载PDF版本