Solution: BLE HID Uart Mult Roles¶
1 功能概述¶
此sample为pan108xxb5
(64pin芯片)evb上演示蓝牙HID串口设备的透传功能,支持1主多从
2 环境要求¶
board:
pan108xxb5
(芯片型号)开发板 * 3uart0: overlay中设置P00,P01作为默认的LOG输出端口
uart1: overlay中默认P06作为Uart Tx端-连接开发板TX0,P07作为Uart Rx端-连接开发板RX0
蓝牙主机设备如手机
3 编译和烧录¶
例程位置:zephyr\samples_panchip\solutions\ble_hid_uart_mult_roles
使用 ZAL 工具可以对其进行编译、烧录、打开 VS Code 调试等操作。关于 ZAL 工具的详细介绍请参考:Zephyr APP Launcher 工具介绍。
4 演示说明¶
4.1 AT指令说明¶
所有AT指令必须以
\r\n
字符结尾。广播状态为AT指令模式。连接状态为数据透传。AT指令模式以字符串格式发送。数据透传串口以hex格式发送。存储参数:
typedef struct { uint32_t baudrate; uint8_t own_mac[6]; uint8_t device_name[28]; uint8_t name_length; uint8_t bond_mac[6]; uint32_t passkey; uint32_t rst_flag; } fmc_data;
全擦除后上电第一次打印默认初始化参数,用户可以后续通过AT命令进行修改
default_data_init Baudrate : 115200 Own_mac : 11 22 33 44 55 66 Bond_mac : 11 22 33 44 66 88 Name_length : 9 Device_name : mult_uart Passkey : 123456
AT指令表
AT指令序号 |
AT指令 |
回复 |
说明 |
---|---|---|---|
1 |
AT |
AT+OK |
测试串口通讯是否正常 |
2 |
AT+RESET |
OK+RESET |
复位芯片指令 |
3 |
AT+DEFAULT |
OK+DEFAULT |
恢复出厂设置 |
4 |
AT+BAUD? |
BAUD+波特率 |
10进制值(1200-115200) |
5 |
AT+BAUD+115200 |
OK+BAUD |
设置波特率 1200-115200任意值 |
6 |
AT+MAC? |
MAC+地址 |
查询MAC地址 |
7 |
AT+SETMAC+地址 |
OK+SETMAC |
设置MAC地址成功 |
8 |
AT+NAME? |
NAME+广播名字 |
查询蓝牙广播名字 |
9 |
AT+SETNAME+名字 |
OK+SETNAME |
设置广播名字成功,最长28字节,超过将会截断 |
10 |
AT+BONDMAC? |
BONDMAC+地址 |
查询扫描过滤条件的绑定地址 |
11 |
AT+BONDMAC+地址 |
OK+BONDMAC |
设置扫描过滤条件的绑定地址成功 |
12 |
AT+PIN? |
PIN+设置配对密码 |
作为从机配对时需要在手机端输入密码 |
13 |
AT+PIN+配对密码 |
OK+PIN |
设置密码成功 |
14 |
AT+ADV START |
OK+ADV START |
默认开启了广播 |
15 |
AT+ADV STOP |
OK+ADV STOP |
在广播开启条件下可以停止广播 |
16 |
AT+SCAN START |
OK+SCAN START |
依次输出2条 |
17 |
AT+SCAN STOP |
OK+SCAN STOP |
在扫描开启条件下可以停止扫描 |
18 |
AT+CONN 00 |
OK+CONN |
依次输出5条 |
19 |
AT+DISCONN 00 |
OK+DISCONN |
依次输出2条 |
20 |
AT+DEV SHOW |
OK+DEV SHOW |
显示连接列表 |
21 |
其他 |
AT+ERROR |
未定义 |
连接状态下,发送透传消息以hex格式发送,消息格式如下
Pattern(1B)
Send Connect Index(1B)
data(0~200B)
0x5A
发送给index的参数为置位index bit位
例如,连接了1主2从设备情况下,conn 1为作为从机被主机连接,conn 2~3 为从机连接
发送到全部3个设备时,数据格式内第二个字节为0x7
发送前两个为0x3,发送到第一个连接为0x1,发送到第一个连接为0x2,以此类推
4.2 演示流程¶
4.2.1AT配置测试¶
命令1-13可以灵活配置和读取默认配置参数,先进行测试后,建议发送AT+DEFAULT
恢复默认配置
注意:
目前指令5设置921600会返回信息OVER 115200 REJECT,设置相等值会返回NO CHANGE BAUD,设置115200以下的串口波特率会返回OK+BAUD RESET并reset芯片,切换波特率可以继续通信测试
部分设置命令会答应
RESETING...
进行芯片重启
4.2.2 蓝牙状态测试¶
主机和从机可以同时支持,默认上电开启了广播,最多支持1主2从
通过命令AT+DEV SHOW
可以进行连接设备信息查看
4.2.2.1 从机模式¶
作为从机默认上电开启了蓝牙广播,测试流程可以按照以下顺序
AT+ADV STOP
,手机端搜索不到广播AT+ADV START
,手机端可以重新搜索到广播手机端蓝牙连接设备
手机端输入密码进行连接
手机端对属性进行
notify enable
芯片端发送消息上报
手机端发送消息下发
4.2.2.2 主机模式¶
作为主机,需要主动开始扫描,扫描到设备后,主动进行连接已经开启的另一块从机设备,连接从机时默认会进行服务发现、notify enable
,之后可以进行消息透传测试
AT+SCAN START
,成功扫描后返回SCAN DONE
AT+CONN 00
,成功连接后返回CONN WHOLE DONE
芯片主机端进行数据传输测试
可以进行第二块从机的准备和完成扫描连接流程
可以对多块板子进行传输
5 RAM/Flash资源使用情况¶
Memory region Used Size Region Size %age Used
FLASH: 108840 B 384 KB 27.68%
SRAM: 38311 B 46 KB 81.33%