1

我正在 STM32 SPBTLE-1S 模块(BLE 4.2)上开发一个应用程序。该模块连接到 Raspberry Pi。

当连接质量较低时,有时会在达到连接超时之前断开连接,错误代码为0x28(原因:即时通过)。

当前的连接设置是:

Conn_Interval_Min: 10

Conn_Interval_Max: 20

从属延迟:5

Timeout_Multiplier:3200

阅读有关此类错误的更多信息,似乎发生在“无法执行包含瞬间的 LMP PDU 或 LL PDU,因为这将发生的瞬间已经过去”。这些包通常用于跳频或连接更新。就我而言,它们必须是频率希望的小包。

关于如何防止由“即时通过”错误导致的这些断开连接的任何想法?还是它们仅仅是 BLE 技术的结果?

4

1 回答 1

1

你的问题听起来和这个相似

简而言之,只有两个可能的链路层请求会导致这种类型的断开连接(在最新的v5.2 蓝牙核心规范LL_CONNECTION_UPDATE_IND中称为& )LL_CHANNEL_MAP_IND

如果您可以访问嵌入式设备上蓝牙堆栈的低级固件,我过去所做的是增加未来“即时”开关所在的插槽数量,以便数据包有更多时间发送在嘈杂的环境中通过。

否则,您可以做的最好的事情是尝试限制更改连接参数的次数,以降低这种断开连接的可能性。(断开连接仍可能由通道映射更改触发,但我还没有看到很多 BLE 堆栈在发生这些配置时暴露了很多配置。)

于 2020-03-01T03:42:53.717 回答