打开主菜单

谷雨文档中心 β

更改

NRF52832DK协议栈实验

删除3字节2019年8月19日 (一) 14:38
蓝牙协议实验
低功耗实验1.0_ble_central_pm与2.0_ble_peripheral_pm,这两个实验给大家带来的是最精简的主机以及从机例程,精简到什么程度呢,只保留了协议栈初始化以及电源管理部分。利用此实验,大家可以测试一下我们的BLE工程进入低功耗模式下的功耗情况。
==== 实验现象 ====
我们将万用表串联到电路中,并且打到电流档,此时我们可以看到功耗如下。
==== 工程及源码讲解 ====
===== 主机部分 =====
====== main()函数 ======
首先我们查看一下main.c文件,在此文件的mian()函数中,我们首先初始化了电源管理模块,然后初始化了BLE栈堆,最后在while大循环中我们调用空闲状态处理的函数。
</syntaxhighlight>
====== ble_stack_init()函数及ble_evt_handler()回调函数 ======
我们查看一下BLE协议栈初始化,这个部分是一个格式化的东西。
</syntaxhighlight>
====== power_management_init()及idle_state_handle()函数 ======
power_management_init()函数调用底层的nrf_pwr_mgmt_init()函数去初始化电源管理的部分。
</syntaxhighlight>
===== 从机部分 =====
====== ble_stack_init()函数 ======
从机部分大体上是和主机一样的,在nordic的协议栈例程中,(如果大家对BLE协议有一定的了解或者使用过其他厂家的BLE芯片)我们可以发现,nordic为了简化BLE的开发难度,可谓是不择手段,他减掉了很多的ble协议相关的内容(这里的减掉指的是放到底层处理,不需要开发者去配置),这其中就包含了GAP Role,也就是蓝牙的角色。
NRF_SDH_BLE_PERIPHERAL_LINK_COUNT与NRF_SDH_BLE_CENTRAL_LINK_COUNT,在定义最大连接设备数量的同时,也决定了它本身的角色属性。
===== BLE中我们称Central中心设备为主机(发起连接的设备)、Peripheral外部设备为从机(广播等待被连接的设备)。=====<syntaxhighlight lang="c" line="1" start="103">
ret_code_t nrf_sdh_ble_default_cfg_set(uint8_t conn_cfg_tag, uint32_t * p_ram_start)
{
510
个编辑