我正在尝试发送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]
做了一些我没有预料到的事情。