DA14683的蓝牙相关配置


勤基科技 陈杰明

导入工程
首先,我们通过开发环境的左上角 File->Import导入Demo例程。如下:

 

修改广播信息
打开pxp_reporter_task.c
 

 

修改设备名
在pxp_reporter_task.c找到以下函数:
 

 

标记出来的语句是把PX_REPORTER_DEFAULT_NAME这个变量copy到name_buf里面就是把变量赋值给设备名的buf。至于PX_REPORTER_DEFAULT_NAME在哪里设置,我们可以在pxp_reporter_config.h里面找到:

 

我们直接修改这个定义即可修改设备名。
最后在task任务实体里面可以看到调用的地方:

 

修改MAC地址
一般情况下比较少用到,因为我们调试样板的时候都是用默认的MAC地址,而量产的时候是有量产工具烧录MAC地址的。
 

 

广播间隔和参数
 

 


调用上图的接口,可以修改广播间隔和广播参数。

添加服务
我们在pxp_reporter_task里面添加一个SPS服务,该服务在SDK已经是写好了的。
 

 

可以在pxp_reporter->sdk->ble_service->src里面找到sps.c,就可以看到这个服务的所有内容。

服务UUID
 

在sps…文件开头处有服务UUID的宏定义。
第一个是sps服务的UUID
第二个是发送特征的UUID
第三个是接收特征的UUID
第四个是流控特征的UUID
如果用户想自定义UUID,可以在此处修改。

属性
在sps_init函数中可以看到特征值初始化和创建属性的相关操作:
 

 

如果需要修改属性和添加属性,则 | 上相关的属性即可。
可供用户设置的属性如下,在ble_gatt.h中:

数据接收
在sps.c中,可以找到数据接收的Handler
 

 

上面这个函数是接收函数,手机write数据给到RX特征的时候,数据将由底层返回到这个函数中。用户直接获取value指针即可获取到手机发送过来的数据。
If条件语句里面的内容实际上是把接收到的内容传递给回调函数(rx_data)但是我们初始化这个服务的时候,传入的回调函数是NULL,所以此处可以忽略。

数据发送
同样在sps.c,可以找到数据发送的接口:
 

 

这个函数最终调用的其实是以下函数:

 

此处默认使用NOTIFY发送方式,如需要改为INDICATE,把ble_gatts_send_event的第三个形参改成GATT_EVENT_INDICATION就可以。Sp_service_t 结构体内容如下:

 

通过调用以上接口,我们即可实现数据从芯片发送到手机。

Dialog技术讨论,QQ群871600668
posted @ 2018-11-27 10:47  深圳勤基科技  阅读(419)  评论(0编辑  收藏  举报