当前位置:首页 > 天道酬勤 > 正文内容

ble协议栈代码解析(ble)

张世龙2021年12月21日 20:07天道酬勤920

[由于本文为原创,转载请附上原文出处的链接。 ]

一、必要的软件工具

1、蓝光协议栈(蓝光254 x-1.4.0 ) )

2、IAR开发软件(IAR嵌入式工作台8.20.2 ) )。

注:1.4.0协议栈使用8.20.2的iar版本,1.3.2协议栈等使用8.10.4的iar版本。

二、BLE协议栈安装目录下的文件夹说明

Accessories的一些工具和编译好的Hex文件这个文件夹有Btool的安装包、USB-CDC的驱动程序附件;

Components Hal驱动程序、OSAL源代码、协议栈通用源此文件夹是OSAL各层组件的实现;

文档帮助文档(协议栈说明文档,包括协议栈和DEMO的介绍和开发文档)是学习BLE的最佳材料。

项目工程文件这里有几个TI的演示文稿。 我们的开发一般根据Demo进行修改。

三、BLE协议栈的工作流程

关于BLE协议栈的工作流程图,如下所示。

BLE协议栈分为主机和控制器两部分。 主机部分包括:逻辑链路控制和自适应协议层、安全管理层、属性协议层、通用访问配置文件层、通用属性配置文件层; 控制器部分包括:物理层、链路层、主机控制接口层。 BLE协议栈的配置文件层由GAP角色/安全配置文件和GATT配置文件两部分组成,位于协议栈的顶部,配置文件层将协议栈与APP层联系在一起。 GAP层处理设备访问模式和连接,包括启用/禁用广播、广播间隔、配对和连接控制以及初始化安全管理。 设备成功连接后,可以调用相应的函数获取设备的服务,并对服务内的hsdxtg (标签)进行读写。 GATT层主要用于数据通信,即服务和hsdxtg。 可以向设备的BLE协议栈添加一个或多个服务。 服务(服务)包含一个或多个hsdxtg )。 BLE协议栈有四种设备类型:中央主机、外设从站、观察器和广播者。 主机与从机的通信进程大致为:从机打开广播,主机开始扫描,从机接收到主机的扫描消息后,向主机发送扫描响应数据。 然后主机开始连接,建立通信。

四、新闻广播

处理事件后,如果需要广播此消息,请将值添加到广播数组中的advertData[],然后将gap role _ set parameter (gap role _ advert _ data ) 这样还没有广播成功。 进入GAPRole_SetParameter后,您会发现缺少了GAP_UpdateAdvertisingData函数,需要修改动态广播数据并添加以下代码。

case gap role _ advert _数据:

if (指示灯=最大值指示灯) ) )。

{

voidosal _ memset (间隙最大值数据,0,b _最大值_最小值);

voidosal _ memcpy (间隙角速率数据、值、值);

gapRole_AdvertDataLen=len;

gap _更新发现数据(gap角色任务,

真,间隙辊_累积数据,间隙辊_累积数据;

}

else

{

ret=bleInvalidRange;

}

布莱克;

调用GAPRole_SetParameter函数后,就可以进行广播了。 需要控制任务的调用时间。 然后,添加osal_start_timerEx函数。 它通过计时器循环向任务发送事件消息。 具体的实际时间可以自己决定。

间隙辊组参数(间隙辊_间隙数据,尺寸),间隙数据);

osal _ start _ timerex (简单广播任务,SBP_ADV_RGB_EVT,100 );

返回(事件SBP _ adv _ RGB _ evt );

这样就播放数据了。 用PacketSniffer抓住数据包后,可以用AdvData查看广播数据(十六进制)。 使用功能时,必须在选项下设定C/Compiler Preprocessor,添加宏定义后将其打开。 例如,如果使用串行端口,请添加HAL_UART=TURE,然后注销POWER_SAVING。 如果要使用ADC功能,请添加HAL_ADC=TRUE。

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26548.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。