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

Arduino ESP32中BLE体重测量特征0x2A9D无值输出求助

ESP32 BLE体重测量特征(0x2A9D)无输出问题排查方案

核心排查方向与解决步骤

  • 检查0x2A9D特征的属性配置
    体重测量特征需要支持读和通知属性,同时必须添加客户端配置描述符(0x2902)才能触发通知。确保创建特征的代码如下:

    BLECharacteristic *pWeightMeasChar = pWeightService->createCharacteristic(
        BLEUUID((uint16_t)0x2A9D),
        BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_NOTIFY
    );
    pWeightMeasChar->addDescriptor(new BLE2902());
    
  • 严格匹配WSS/WSP文档的数据格式
    0x2A9D的数据包结构为:1字节标志位 + 2字节(16位精度)体重数据,单位是0.05kg。你之前使用的{0x0A, 0xAA}不符合规范:

    • 标志位需设为0x00(对应0x2A9E设置的0000:无时间戳、单用户、kg单位、16位精度)
    • 体重数据需按小端字节序拼接,比如50.0kg对应的计算:50.0 / 0.05 = 1000,转成小端字节为0xE8, 0x03,完整数据包是{0x00, 0xE8, 0x03}
  • 确保字节序与数据发送逻辑正确
    用代码实现正确的数据拼接与通知触发:

    // 示例:发送50.0kg的体重数据
    uint16_t weightRaw = 1000; // 50.0kg / 0.05kg = 1000
    uint8_t weightPacket[3] = {0x00}; // 标志位0x00
    weightPacket[1] = weightRaw & 0xFF; // 低字节
    weightPacket[2] = (weightRaw >> 8) & 0xFF; // 高字节
    
    pWeightMeasChar->setValue(weightPacket, sizeof(weightPacket));
    pWeightMeasChar->notify(); // 主动触发BLE通知
    
  • 验证0x2A9E的配置生效逻辑
    在0x2A9E的写入回调中,确认客户端发送的配置命令被正确处理,比如收到0000时标记配置状态,后续体重数据输出匹配该配置:

    uint8_t weightConfig = 0x00; // 默认配置
    class WeightConfigCallback : public BLECharacteristicCallbacks {
      void onWrite(BLECharacteristic *pCharacteristic) {
        std::string val = pCharacteristic->getValue();
        if (val.size() == 2 && val[0] == 0x00 && val[1] == 0x00) {
          weightConfig = 0x00;
          Serial.println("已配置为无时间戳、单用户模式");
        }
      }
    };
    // 绑定回调到0x2A9E特征
    pWeightConfigChar->setCallbacks(new WeightConfigCallback());
    
  • 调试验证

    • 用nRF Connect等BLE工具直接读取0x2A9D特征,或监听通知通道
    • 在代码中添加串口打印,输出待发送的数据包内容,确认格式正确:
      Serial.print("体重数据包:");
      for (int i=0; i<sizeof(weightPacket); i++) {
        Serial.print(weightPacket[i], HEX);
        Serial.print(" ");
      }
      Serial.println();
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:30:37