配置BLE中央设备工作在特定的扫描和连接信道 – KBA218992 (ZH)
Version: **
问题:
如何配置BLE中央设备工作在特定的扫描和连接信道上?
答案:
有两个API可以配置数据信道图:CyBle_GapGetChannelMap() 和 CyBle_GapcSetHostChannelClassification(),但是没有配置扫描信道图的API。扫描信道图可以通过直接写寄存器BLE_BLELL_SCAN_CONFIG来配置,通过改变这个寄存器的第13,14和15位来设置扫描信道图。
Table 1. BLE_BLELL_SCAN_CONFIG 寄存器映射说明
位 | 名称 | 说明 |
15:13 | SCAN_CHANNEL_MAP | 扫描操作的广播信道. 第15位: 设置为1 – 使能第39信道. 第14位: 设置为1 – 使能第38信道. 第13位: 设置为1 – 使能第37信道. 默认值: 7 (都设置为 ‘1’) |
可以参考CYBL10X6X Family: Programmable Radio-on-Chip With BLE (PRoC® BLE) Registers Technical Reference Manu... (Page 167)获取更多关于寄存器BLE_BLELL_SCAN_CONFIG的信息。
应用举例:
CYBLE_EVT_STACK_ON事件中,在API CyBle_GapcStartScan()之前添加下面的代码以使用第37个扫描信道:
#define CYREG_BLE_BLELL_SCAN_CONFIG_USER (*(uint32*) BLE_BLELL_SCAN_CONFIG)
CYREG_BLE_BLELL_SCAN_CONFIG_USER=BLE_BLELL_SCAN_CONFIG_USER & 0xFFFF2FFF;