大家好你们好,
我正在开发一个基于SDK5.0.3的智能设备,BLE_APP_PERITIELAL示例,DA14580 01 QFN40设备。在正常情况下,当设备与对等设备(智能手机)断开时,它
将重新启动广告。至于我,情况有点不同。在我的项目代码中,我需要每20ms向对等设备通知20bytes数据。当对等设备终止时
连接后连接,设备可以成功重新启动广告。但是当设备超出连接范围后连接时,它无法重启广告,我不知道
CPU运行的地方。
我还执行另一个测试,如下所述:
系统环境与上面相同。什么改变是循环时间。我发现当我每125毫秒通知20bytes数据时,对等设备终止连接或设备
在连接范围内,DA14582可以重启广告。当此循环时间低于125ms时,如100ms或50ms,DA14582无法重新启动设备时的广告
连接范围。这很奇怪!
顺便说一下,连接参数是:
.intv_min = ms_to_doubleslots(10),
.intv_max = ms_to_doubleslots(20),
智能手机:三星S6 Android 5.1.1
我担心的是,它是对BLE堆栈的任何限制来通知数据。如何处理此类数据交换?任何建议?谢谢!
布罗尔,
年轻
设备:
嗨yound_dialog,
如果我理解您的问题,您可能希望看看下面的帖子,
http://support.dialog-semicondiondiondiondum/da14580-does-not-disconnect.
谢谢mt_dialog.
嗨mt_dialog,
我尝试使用数据缓冲区进行通知,问题消失。但我发现基于RAM的新问题。我正在使用RAM来调试代码和执行。在我的代码中,有一个
函数名为algorithm(),它消耗了很多系统RAM.当我尝试在系统SRAM中创建一个1k字节缓冲区时,它不会在通知时产生影响,因为它不会发送数据
前。我认为缓冲区没有SRAM空间来分配,所以我在保留SRAM中分配它。重试测试。结果是我的缓冲区中的一些数据没有任何符号更改。当我
删除算法()函数或将缓冲区大小缩小为500bytes,它以前很好地运行。从理论上讲,系统SRAM和保留SRAM不会互相打扰。有什么问题
我的缓冲区?任何建议?谢谢!
布罗尔,
年轻
嗨Young_Dialog,
说实话,我不明白你想要做什么或者问题是什么,我也没有看到保留RAM中的数据是如何受到SYSRAM的影响。为了避免在发送通知后断开连接后的复位,您可以制作流量控制机制,或者减少监控超时,以便在生成额外数据和泛洪您的内存之前断开连接。
谢谢mt_dialog.