对于我正在开发的一个应用程序,我们正在使用Genuino 101。
由于BLEUnsignedLongCharacteristic太小,我决定选择BLECharacteristic。
然而,当我改变它的时候,这个草图不会运行。
#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时,草图运行得很好,它使用了未签名的long。
有人有主意吗?
发布于 2017-05-23 14:18:16
结果,我把0x00分配给数据,在我显示的下面几行。当您将它定义为一个长值时,这是很好的,但是当微控制器需要一个数组并找到一个值时,它就崩溃了。
https://stackoverflow.com/questions/44132739
复制相似问题