当BLEC特征定义时,Genuino 101不运行

时间:2017-05-23 10:51:22

标签: c++ c arduino

对于我正在开发的应用程序,我们正在使用Genuino 101 因为BLEUnsignedLongCharacteristic太小,我决定去BLEC特性。

然而,当我在

上更改草图时,草图不会运行
#ifdef _BLE_
BLECharacteristic data("9ff91ff6-e874-4ff6-8cff-83daaf9d7fc1", BLERead |BLEWrite, RD_BUF_LEN);
#else
BLEUnsignedLongCharacteristic data("9ff91ff6-e874-4ff6-8cff-83daaf9d7fc1", BLERead | BLEWrite);
#endif // _BLE_

我尝试在彼此旁边运行两个,并且当我将数据定义为unsignedLongCharacteristic时草图运行。

ifdef _BLE_
    unsigned char rdBuf[RD_BUF_LEN] = { 0 };
    i2cRead(device.value(), memory.value(), sizeof(rdBuf), rdBuf);
    data.setValue(rdBuf, RD_BUF_LEN);
#else
    unsigned char rdBuf[4] = { 0 };
    i2cRead(device.value(), memory.value(), sizeof(rdBuf), rdBuf);
    unsigned long output = ((rdBuf[0] << 24) + (rdBuf[1] << 16) + (rdBuf[2] << 8) + (rdBuf[3]));
    data.setValue(output);
#endif // _BLE_

同样,当我没有定义BLE时草图运行正常,它使用无符号长。

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

事实证明,我将数据的0x00分配给了我所显示的几行。 现在这很好,当你将它定义为long时,但当微控制器需要一个数组并找到一个值时,它会崩溃