当发送字节数组时,RFduinoBLE_onReceive



我正在尝试发送8位字节数组到rfduino.

在草图中,我得到

void RFduinoBLE_onReceive(char *data, int len) {
   int firstbyte = data[0];
   Serial.println(firstbyte)
}

如果第一个字节大于32,则可以正常工作。但如果我发送一个byteArray[13,…], firstbyte解析为0。

我想我明白为什么了。RFduinoBLE在将传入的数据发送到此函数之前将其解析为字符,并且最大32字节是空字符串。

所以我的问题是:我如何使用rfduinble - onreceive读取值低于32的字节数组?

下面的代码似乎可以正常工作:

void RFduinoBLE_onReceive(char *data, int length) {
    uint8_t firstbyte = data[0];
}

或用于数组

uint8_t getData[20];
void RFduinoBLE_onReceive(char *data, int length) {
    for (i = 0; i < length; i++) {
        getData[i] = data[i];
    }
}

不太确定什么是正确/错误的地方,但我怀疑使用int firstbyte而不是uint8_t firstbyte 铸造uint8_t firstbyte = (uint8_t) data[0]做了一些我没有预料到的事情。

相关内容

  • 没有找到相关文章

最新更新