对于我正在开发的应用程序,我们正在使用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时草图运行正常,它使用无符号长。
有人有想法吗?
答案 0 :(得分:0)
事实证明,我将数据的0x00分配给了我所显示的几行。 现在这很好,当你将它定义为long时,但当微控制器需要一个数组并找到一个值时,它会崩溃