我的一般理解是 BLE 标准支持的特征长度最大为 512 字节。我正在使用 STM 的 BlueNRG-MS 芯片,但是添加特征的函数调用具有长度参数的 uint8_t 值
tBleStatus aci_gatt_add_char(uint16_t serviceHandle,
uint8_t charUuidType,
const uint8_t* charUuid,
uint8_t charValueLen,
uint8_t charProperties,
uint8_t secPermissions,
uint8_t gattEvtMask,
uint8_t encryKeySize,
uint8_t isVariable,
uint16_t* charHandle);
所以这将只允许 255 个字节的最大特征长度。根据本文档,堆栈本身支持 2 个字节,固件版本为 7.2 或更高版本。我有 7.23 所以这应该没问题,但我找不到任何支持charValueLen
类型调用的 BlueNRG-MS 中间件的参考或示例uint16_t
。我还下载了最新的 STSW-BLUENRG-DK,示例也只支持uint8_t charValueLen
.