BLE Central¶
1 功能概述¶
ble_central例程演示了如何使用ble central role、如何scan其他设备、如何create ble connection、如何read/write 远程设备的特征值。
2 环境要求¶
board:
pan107x evb
uart(option): 用来显示串口log(波特率921600,选项
8n1
)
4 演示说明¶
烧录完成后,设备上电会输出log,设备将处于scan状态,如果用户需要查看扫描到的设备信息,需要将工程app_ble.c中的宏
APP_PRINT_SCANNED_DEV_EN
设置为1。工程提供了两种create connection的方式
(1) 通过按键 create connection
工程默认配置是通过EVB上的按键
KEY1
去触发BLE connection, 当用户按下KEY1
后,设备会随机连接周围的BLE 设备。(2) 通过BLE device 过滤器去connection用户指定的设备
NDK提供了ble device filter组件,方便用户过滤出自己想要connection的设备,以便精确连接。为了开启ble device filter功能,用户需要在app_ble.c中将宏
APP_BLE_DEV_FLT_EN
设置为1, 同时需要根据自己的需求使能并设置过滤条件,例如:过滤设备名字,过滤设备地址,过滤UUID16等(其他过滤条件可以查看ble_device_filter 组件的实现)。默认情况下,多个过滤条件被使能和设置以后,必须多个条件同时满足,才是符合预期的设备。
/**@brief ble device filter. */ #define APP_BLE_DEV_FLT_EN 0 // filt device name #define APP_FILT_DEV_NAME_EN 0 #define APP_FILT_DEV_NAME "ble_hr" // filt device address #define APP_FILT_DEV_ADDR_EN 1 #define APP_FILT_DEV_ADDR_LEN 5 //address match length, range 1~6 #define APP_FILT_DEV_ADDR 0x66, 0x66, 0x66, 0x66, 0x11, 0xC2 // filt UUID16 #define APP_FILT_UUID16_EN 0 #define APP_FILT_UUID16 0x180D // HRS service UUID