蓝牙mesh组网实践(在mesh工程中添加BLE功能)

发布时间 2023-03-31 15:34:03作者: JayWell

目录

CH582这款芯片是能够同时跑mesh+BLE的,在我司提供的透传模型“一般节点”或者叫“普通节点”的代码adv_vendor中,也可以添加BLE功能,方便用户随时连接BLE。

在adv_vendor工程中添加BLE的操作步骤如下:

如图配置预编译宏。

BLE_MAC:用于配置BLE广播所用的MAC地址为代码中自定义的MAC,位于app_main.c的前几行。如果BLE-MAC不配置,使用芯片内置的MAC地址,也可以进行BLE广播,但不建议,因为mesh的未配网信标广播也会用到芯片内置的MAC地址,要尽量避免使用同一个MAC。

BLE_MEMHEAP_SIZE:用于给BLE协议栈预留RAM空间。这里使用BLE->LIB文件夹中的LIBCH58xBLE.a文件中的BLE协议栈,按建议是预留6K的RAM。如果该值过小,会导致BLE广播难以被发现或者BLE连接后出异常。

将profile文件夹、peripheral源/头文件拷贝到adv_vendor工程文件夹中。

添加头文件包含,在APP_INIT初始化函数中加上下图中的两行BLE相关初始化。

之后就能使用BLE功能了,具体的BLE相关配置可以研究研究peripheral例程。

如果需要添加低功耗节点功能,需要再按如下步骤多几步修改。

使能mesh低功耗节点功能,关闭转发功能(最好关掉,不关的话LPN长期休眠,也执行转发)。

增加HAL_SLEEP宏,删除HAL_KEY宏,注释掉按键检测功能以及多余的循环TMOS事件。

 

固定所有引脚的电平。本测试中绝大多数引脚悬空,故将GPIO电平都固定在上拉高电平。

关闭10s一次的安全广播,disable掉就行,IV同步功能会由低功耗节点帮助完成。