当前页面为 开发中 版本,查看特定版本的文档,请在页面左下角的下拉菜单中进行选择。

BLE Central

1 功能概述

ble_central例程演示了如何使用ble central role、如何scan其他设备、如何create ble connection、如何read/write 远程设备的特征值。

2 环境要求

  • board: pan107x evb

  • uart(option): 用来显示串口log(波特率921600,选项8n1

3 编译和烧录

例程位置:<home>\nimble\samples\bluetooth\ble_central\keil_107x

使用keil打开项目并进行编译和烧录。

4 演示说明

  1. 烧录完成后,设备上电会输出log,设备将处于scan状态,如果用户需要查看扫描到的设备信息,需要将工程app_ble.c中的宏APP_PRINT_SCANNED_DEV_EN设置为1。

  2. 工程提供了两种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
    

5 RAM/Flash资源使用情况

PAN107x:

RAM Size:37.74 k
Flash Size: 122.46k