Other Parts Discussed in Thread: LAUNCHXL-CC26X2R1
您好!
我有具有 CCS v9.1.0的 LAUNCHXL-CC26X2R1板、并且我将 simplelink_cc13x2_26x2_SDK_3_10_01_11 SDK 用于工程。
我正在处理 Simple Peripheral 应用、并修改了该项目、以便它可以支持5个传统广播数据集和1个扩展广播数据集。 对于广播、我必须在每个广播间隔后更改广播集。 因此,我将使用不同的广播间隔计时器,并使用 GapAdv_enable()和 GapAdv_disable()在广播数据集之间切换。 因此、当接收 GAP_EVT_ADV_END 时、我们会禁用广播并切换到下一个广播集。 计时器过期时,我们使用 GapAdv_enable()发送下一个广播数据集。
但是、当我将 GapAdv_enable()发送到 BLE Stack 以开始广播时、每次随机延迟后都会收到 GAP_EVT_ADV_START_AFTER_ENABLE 事件。 因此、我在中央侧以随机广播间隔而非预期广播间隔接收广播数据包。
在发送第一个广播数据包之前、我尝试通过计算 GapAdv_enable ()和 GAP_EVT_ADV_START_AFTER_ENABLE 之间的系统节拍(即在我们的项目1节拍= 10微秒)来观察 TI BLE 堆栈添加了多少延迟。 以下是我的观察结果:
在我观察到的多个调试会话中、BLE 堆栈会在发送第一个广播数据包进行广播之前、为每个广播数据集添加0ms 至大约16ms。 在接收广播数据集的同时、在中央侧观察到同样的情况。
您能解释一下 TI BLE 堆栈的这种行为吗? 为什么添加延迟而不是直接发送广播的广播数据集?
此致、
四
