典型应用开发示例

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且可以连接)

@enduml

修改参数

下图展示修改设备名为CARKIT的过程:

@startuml
hide footbox
skinparam sequenceMessageAlign center

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

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 修改任何参数前,建议先查询再修改最后校验。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}

经典蓝牙接收模式连接

应用框图

../_images/db200-bt1038x-audio-rx-200dpi.png

应用流程图

@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: AT+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 扫描连接

应用框图

../_images/db200-bt1038x-audio-bisrx-200dpi.png

应用流程图

@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: 模块发起广播源扫描
host -> bt: 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: 模块发起连接广播源的指令
host -> bt: AT+BISADD=15,43356
bt -> host: +BISADD=15,43356
bt -> host: OK
bt -> host: +BISSTAT=4
bt -> host: +BISSTAT=5


@enduml

Phonebook下载

Note

SOC音频模块部分固件不支持下载联系人时自动连接PBAP, 需发送AT+PBCONN连接PBAP再下载

@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