You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中设置BLE最小连接间隔为7.5ms?

设置32feet InTheHand BLE库的连接间隔为7.5ms

InTheHand.Bluetooth库的Gatt.ConnectAsync方法提供了重载,允许通过GattConnectionParameters指定连接间隔等核心参数。要实现7.5ms的最小连接间隔,需利用BLE间隔的单位规则(1.25ms为一个单位),将间隔值设为6(7.5 ÷ 1.25 = 6)。

修改后的完整代码

using InTheHand.Bluetooth;

IReadOnlyCollection<BluetoothDevice> discoveredDevices = await Bluetooth.ScanForDevicesAsync();
BluetoothDevice fooDevice = discoveredDevices.Single(d => d.Name == "fooDevice");

var gatt = fooDevice.Gatt;
// 配置连接参数,强制使用7.5ms间隔
var connectionParams = new GattConnectionParameters
{
    MinInterval = 6,       // 最小间隔:6×1.25ms = 7.5ms
    MaxInterval = 6,       // 最大间隔设为与最小一致,固定间隔
    SlaveLatency = 0,      // 从设备不允许跳过连接事件,确保每次间隔都传输数据
    SupervisionTimeout = GattConnectionParameters.DefaultSupervisionTimeout // 保持默认超时
};
await gatt.ConnectAsync(connectionParams);

GattService barService = await gatt.GetPrimaryServiceAsync(BleUuids.BAR_SERVICE);
GattCharacteristic fooChar = await barService.GetCharacteristicAsync(Guid.Parse(BleUuids.FOO_CHAR));

关键说明

  • 间隔单位规则:BLE连接间隔的配置值是1.25ms的倍数,取值范围为6(7.5ms)到3200(4000ms)。将MinInterval和MaxInterval设为相同值可强制使用固定间隔。
  • 平台兼容性:
    • Windows:需Windows 10 1903及以上版本,部分蓝牙适配器可能存在硬件限制,无法支持最小间隔。
    • Android:需Android 8.0+,实际间隔可能受系统调度影响,略高于设置值。
  • 设备协商限制:最终连接间隔由主设备(你的控制台应用)和从设备(fooDevice)协商决定,如果从设备不支持7.5ms间隔,会自动调整为双方都支持的最小值。
  • 功耗与性能:更小的连接间隔会提升传输速率,但同时会增加蓝牙模块功耗和系统资源占用,需平衡速率与设备续航需求。

内容的提问来源于stack exchange,提问作者Vincent S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 18:23:13