BLE MULTI ROLE¶
1 功能概述¶
此项目演示蓝牙多角色功能,可以支持多主多从,可以通过串口控制设备执行广播、扫描。
作为主机:可以直接扫描和连接
bleprph_enc
示例,可以直接下载bleprph_enc
到另外一块EVB板上。作为从机:其实就是一个
bleprph_hr
例程,可以使用手机nrf_connect app与其相连。
作为主机和从机的功能可以同时使用。
2 环境要求¶
board:
pan107x evb
uart(option): 用来显示串口log(波特率921600,选项
8n1
)
4 演示说明¶
命令串口端口:
UART PORT |
DESCRIPTION |
---|---|
P10 |
UART1_TX |
P24 |
UART1_RX |
BaudRate:921600
相关的串口命令如下表格所示:
TEST CMD |
DESCRIPTION |
---|---|
ADV_START\r\n |
开启广播 |
ADV_STOP\r\n |
停止广播 |
SCAN_START\r\n |
开启扫描 |
SCAN_STOP\r\n |
停止扫描 |
烧录完成后,串口输出的log如下:
Try to load HW calibration data.. DONE. - Chip Info : 0x1 - Chip CP Version : 255 - Chip FT Version : 2 - Chip MAC Address : D0000000017D - Chip UID : FD0311230F37560365 - Chip Flash UID : 425031563233391711230F3756036578 - Chip Flash Size : 512 KB LL Spark Controller Version:d7c4bfa APP version: 0.144.38920 ble_store_config_num_our_secs:0 ble_store_config_num_peer_secs:0 ble_store_config_num_cccds:0 blehr_advertise
上电默认发广播,广播名字为“cent_prph”。
用手机“NRF CONNECT” app连接广播名字为“cent_prph”广播,连上后此时无广播无扫描。
串口发送“ADV_START\r\n”,串口log输出如下:
Try to load HW calibration data.. DONE. - Chip Info : 0x1 - Chip CP Version : 255 - Chip FT Version : 2 - Chip MAC Address : D0000000017D - Chip UID : FD0311230F37560365 - Chip Flash UID : 425031563233391711230F3756036578 - Chip Flash Size : 512 KB LL Spark Controller Version:d7c4bfa APP version: 0.144.38920 ble_store_config_num_our_secs:0 ble_store_config_num_peer_secs:0 ble_store_config_num_cccds:0 blehr_advertise connection established; status=0 blehr_advertise
连上后继续发广播。用其他手机“NRF CONNECT” app可以连接新发出的广播。
作为主机,如果空中有
bleprph_enc
存在,则会主动连接上 。连上后的log如下:
LL Spark Controller Version:d7c4bfa APP version: 0.144.38920 ble_store_config_num_our_secs:0 ble_store_config_num_peer_secs:0 ble_store_config_num_cccds:0 blehr_advertise connection established; status=0 blehr_advertise scan start fail Try to load HW calibration data.. DONE. - Chip Info : 0x1 - Chip CP Version : 255 - Chip FT Version : 2 - Chip MAC Address : D0000000017D - Chip UID : FD0311230F37560365 - Chip Flash UID : 425031563233391711230F3756036578 - Chip Flash Size : 512 KB LL Spark Controller Version:d7c4bfa APP version: 0.144.38920 ble_store_config_num_our_secs:0 ble_store_config_num_peer_secs:0 ble_store_config_num_cccds:0 blehr_advertise Connection established handle=0 our_ota_addr_type=0 our_ota_addr=7d:01:00:00:00:d0 our_id_addr_type=0 our_id_addr=7d:01:00:00:00:d0 peer_ota_addr_type=0 peer_ota_addr=cd:00:00:00:00:d0 peer_id_addr_type=0 peer_id_addr=cd:00:00:00:00:d0 conn_itvl=40 conn_latency=0 supervision_timeout=256 encrypted=0 authenticated=0 bonded=0 Service discovery complete; status=0 conn_handle=0 Read complete; status=0 conn_handle=0 attr_handle=12 value=0x00 Write complete; status=270 conn_handle=0 attr_handle=22 Subscribe complete; status=0 conn_handle=0 attr_handle=20
如果还需要连接其他广播设备,串口发送“SCAN_START\r\n”。
多连接相关:
目前例程默认配置两主两从,配置的宏如下所示:
/* CENTRAL maximum number of states supported */ // <o> BT_MAX_NUM_OF_CENTRAL #define CONFIG_BT_MAX_NUM_OF_CENTRAL 2 // <i> CENTRAL maximum number of states supported /* PERIPHERAL maximum number of states supported */ // <o> BT_MAX_NUM_OF_PERIPHERAL #define CONFIG_BT_MAX_NUM_OF_PERIPHERAL 2 // <i> PERIPHERAL maximum number of states supported
可以根据自己的需求修改宏参数即可,受芯片ram资源限制,目前最多支持两主两从。
可修改宏”PAN_BLE_CTLR_BUFFER_ALLOC”增加多角色的数量。