中科蓝讯_889X系列蓝牙SPP的使用

本文介绍了如何利用中科蓝讯的蓝牙SPP功能进行设备间的串口通信。通过SPP_init初始化和bt_app_cmd_process解析数据,实现自定义数据规则控制耳机功能。例如,发送特定十六进制指令可执行关机、读取蓝牙地址、获取软件版本等操作,耳机接收到指令后会返回响应数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                                       关于中科蓝讯蓝牙SPP的使用

 

SPP是Serial Port Profile(串口协议)的缩写,其定义了使用蓝牙进行RS232(或类似)串行电缆仿真的设备应使用的协议和过程。简单来说就是在蓝牙设备之间建立虚拟的串口进行数据通信。说白了就是可以两个设备对端发送自定义数据,NOTED:苹果不支持SPP协议。

 

前置条件: 耳机打开串口功能

 

 

手机通过“蓝牙串口SPP” 手机APP软件,连接耳机,然后通过APP发送数据流给到耳机

 

 

 

中科蓝讯SPP使用:

  1. 配置功能中,打开串口功能
  2. SPP_init初始化,此处已经有,不需要我们自己初始化
  3. Spp_rx_callback  当耳机接收到SPP数据时,此处就会执行,
  4. bt_app_cmd_process  对接收到的数据进行解析,并匹配,如果匹配上,则执行对应的功能
  5. bt_spp_tx  返回数据流给到手机端。如上图,接收到0x44 0x55 0x54 ,然后又返回0x44 0x55 0x54给手机

 

 

 

采用ASCII的形式,详细ASCII表,请看最下面

如我们发送’D’ 、‘U’、‘T’,对应的发送数据ASCII就是 0x44 0x55 0x44

主要使用API

void bt_app_cmd_process(u8 *ptr, u16 size, u8 type)    接受串口数据并校验

 @Param   *ptr      通过蓝牙串口APP 发送过去的16进制数据数组



 @Param   size      发送数据的长度,如0x44 0x55 0x54  size =3



 @type    type 默认为0

 

int bt_spp_tx(uint8_t *packet, uint16_t len);    返回对应的数据回手机



@Param     *packet 返回给手机的数据(数组)



@Param len 数据长度

 

通过该方法,我们就可以自定义数据规则,来控制耳机进入各种功能。耳机收到对应的命令,然后发送一个msg_eneque(MSG)出去,执行对应的功能.

 

那我们就要指定对应的数据规则,以及返回对应的数据使得其他仪器解析出自己想要的数据,就像双方的暗号,暗号对上了,就代表认对人.

如:

关机命令

Send(手机端发送耳机的指令): 55 AA FF 14 00 F0(数据固定-十六进制)

Rsp(耳机返回手机端的指令):55 AA FF 14 01 00 B0

 

读取蓝牙地址:

Send(手机端发送耳机的指令): 55 AA FF 0D 00 AE(数据固定-十六进制数据)

Rsp(耳机返回手机端的指令): 55 AA FF 0D 07 41 42 00 01 02 03 00 A3

 

读取当前软件版本号

Send(手机端发送耳机的指令): 55 AA FF 17 00 A5(数据固定-十六进制数据)

Rsp(耳机返回手机端的指令): 55 AA FF 17 03 01 46 00 D1

注:“01”表示声道的选择(00:左声道 01:右声道) 第二个“46”表示软件版本号 4.6

 

进入DUT

Send(手机端发送耳机的指令): 55 AA FF 10 00 CB(数据固定-十六进制数据)

Rsp(耳机返回手机端的指令): 55 AA FF 10 01 00 2E

 

读取蓝牙名称

Send(手机端发送耳机的指令): 55 AA FF 0F 00 3F(数据固定-十六进制数据)

Rsp(耳机返回手机端的指令): 55 AA FF 0F 0C 54 45 43 4E 4F 2D 42 75 64 73 31 00 41

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值