【WCH蓝牙系列芯片】-CH9141模块AT指令增加自定义透传UUID服务
-------------------------------------------------------------------------------------------------------------------------------------
在使用沁恒的蓝牙串口透传芯片CH9141,这是一个自带固件,拿来接上串口就可以直接用的蓝牙模块芯片。支持串口 AT 配置和在从机模式下的蓝牙通信配置。
在新的版本中CH9141提供AT 指令增加一组自定义透传服务,但是得9141 芯片3.6 版本开始支持,9141F 芯片1.0 版本开始支持。支持16bitUUID 以及128bit UUID。16bit 的 UUID 需要按照 128bit 设置。在手册中可以看到具体AT配置指令。
接下讲解一下如何通过AT指令对CH9141进行参数配置,从而增加一组自定义透传服务的流程。
第一步:硬件连接
连接好硬件设备,将串口调试器的5V和GND连接对应CH9141的5V和GND引脚,TXD和RXD分别交叉连接到CH9141的RXD和TXD引脚。
第二步:查询自定义服务是否使能
打开上位机串口调试,发送AT指令,进行模式参数配置。在发送每条指令时,都需要换行!这是指令结束的一个标志。
可以通过十六进制查看发送的指令最后两位数据是否为0X0D和0X0A,则是命令中采用回车符和换行符作为分隔符和结束符使用。
发送指令:AT... //进入AT模式
返回值:OK
发送指令:AT+SEVEREN? //查询当前自定义服务的使能状态
返回值: ON //表示自定义服务已使能
OK
如果返回值是OFF,说明自定义服务没有使能使能,可以通过串口发:AT+SEVEREN=ON,返回值:OK
第三步:自定义主服务的UUID,写属性的UUID和通知属性的UUID的修改
为了实验的讲解,这里将这个对于主服务,写属性和通知属性的UUID都是随便定义,没有具体的参考价值意义。只支持 128bit 设置,16bit 的 UUID 需要按照 128bit 设置。
主服务UUID:1234ee00-0000-1000-8000-00805f9b34fb
通知属性UUID:1234ee01-0000-1000-8000-00805f9b34fb
写属性UUID:1234ee02-0000-1000-8000-00805f9b34fb
发送指令:AT... //进入AT模式
返回值:OK
发送指令:AT+PRIMARYUUID=fb349b5f800000800010000000ee3412 //设置自定义主服务的 UUID
返回值: OK //表示设置成功
发送指令:AT+NOTIUUID=fb349b5f800000800010000001ee3412 //设置自定义通知属性的 UUID
返回值: OK
发送指令:AT+WRITEUUID=fb349b5f800000800010000002ee3412 //设置自定义写属性的 UUID
返回值: OK
发送指令:AT+RESET //复位芯片
返回值: OK
Welcome
通过手机的BLE调试助手连接CH9141,也是能够成功进行收发数据。
这里再讲解一下,针对UUID的修改进行说明,比如通知属性UUID:1234ee01-0000-1000-8000-00805f9b34fb,但是在AT指令发送通知属性的UUID时,有个大小端的区别,以两个字节为一个整体,要从后面往前面写。
所以在通过AT指令进行配置通知属性的UUID时,利用AT+NOTIUUID填写的是fb349b5f800000800010000001ee3412。