首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iPhone上从nRF52 ARM接收BLE数据包的速度很慢

在iPhone上从nRF52 ARM接收BLE数据包的速度很慢
EN

Stack Overflow用户
提问于 2020-05-12 06:42:02
回答 1查看 505关注 0票数 0

我基于处理BLE5的nRF52 SOC构建了一个自定义ARM设备。我使用核心蓝牙框架在SWIFT/X代码/IB中编写了一个自定义应用程序,无法以超过12Kbps的速度从ARM设备传输数据。使用数据包嗅探器,我可以看到ARM设备实时发送了所有数据包,但iPhone读取它们的速度不会超过每秒几次。在极少数情况下,iPhone读取所有内容的速度很快。蓝牙连接协商为12-24毫秒的延迟。我使用的是北欧BLESDK16版。当时iPhone没有连接到任何其他nRF52设备。

其他人也有这个问题吗?如果有用,我可以发布ARM设备上使用的代码和XCode代码。

EN

回答 1

Stack Overflow用户

发布于 2020-05-14 15:44:53

首先,我假设你是通过通知发送的。其次,你需要知道是什么形成了你的数据速率。它们是:

  • 每个连接间隔每个notification
  • Connection interval
  • Events的位数
  • 数据通信类型

您还可以排队存储多个数据包,直到它们通过通知发送(填充缓冲区)。

所以一些有用的设置。首先,也是最重要的,最大化每个数据包发送的数据。例如,如果您要发送10字节的数据发送更多,这将被限制为北欧电路板上的最大数据大小(247)。然后增加间隙长度。因此,我建议开始的一些设置是:

然后在电路板上运行,你可能会得到一个错误,说改变内存和开始位置。这将被打印到终端。您可以通过以下方式完成此操作:

  • Project
  • Options
  • Common
  • Press向上箭头直到在project
  • Linker
  • Section placement宏下。

我也不确定iphone应用程序的API,但android具有将蓝牙硬件设置为高功率模式的功能,这增加了我在传输数据时的吞吐量,只需在数据传输后禁用它。您使用的API可能具有类似的功能。

对于参考代码,sdk中有一个名为maximum_throughput的示例,这应该是一个很好的参考点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61740663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档