准备工具
一块 bl702 开发板 + 手机 app
软件实现
BLE PDS31 软件实现
软件代码见 examples/ble/ble_pds
![](//www.obk20.com/file/web2/M00/50/03/poYBAGLGqymAdiF6AAAUgLPanyo289.jpg)
BLE PDS31 function 需要开启freertos tickless 功能 , 见 components/freertos/portable/gcc/risc-v/bl702/FreeRTOSConfig.h
![](//www.obk20.com/file/web2/M00/50/03/poYBAGLGqs6ATkKRAAEucWfACY8316.jpg)
在 ble_start_adv 函数中, adv_name 设置这次广播的设备名称,设备就开始进行广播
![](//www.obk20.com/file/web2/M00/50/03/poYBAGLGqs6AZOptAABfh4RdFgo528.jpg)
广播开始之后, 在 bt_enable_cb 中, pds_start = true 是允许进入PDS31
连接成功后,在 ble_tp_connected 函数, pds_start = false 会关闭pds31.
如果想要连接成功后,继续进入PDS31,需要板子上带有external xtal 32K. 配置以下设置, 当connection interval > 100ms 的时候,会进入PDS31.
![](//www.obk20.com/file/web2/M00/50/03/poYBAGLGqymAO9zLAAARkBmZows199.jpg)
pds31 唤醒时钟源配置,见 bsp/board/bl706_iot/clock_config.h
![](//www.obk20.com/file/web2/M00/50/9D/pYYBAGLGqymAYvpKAAARI-BgY2g980.jpg)
连接成功后进入PDS31配置,见 examples/ble/ble_pds/ble_peripheral_tp_server.c
编译和烧录
命令行编译
![](//www.obk20.com/file/web2/M00/50/9D/pYYBAGLGqs6Adct3AAA6DikYyl4802.jpg)
烧录
详见 BLDevCube 烧录工具指南
实验现象
手机连接 bl702
![](//www.obk20.com/file/web2/M00/50/03/poYBAGLGqs6AKvDmAAC5iOkDKjc087.jpg)
连接成功,如下图所示
![](//www.obk20.com/file/web2/M00/50/9D/pYYBAGLGqs6AXr_oAACZQXslys4057.jpg)
进入PDS31 显示
![](//www.obk20.com/file/web2/M00/50/9D/pYYBAGLGqs6ASv9lAAE6o9MZD-s713.jpg)
原作者:BL_MCU_SDK 开发指南
|