RFduinoBLE_onReceive 发送字节数组时
RFduinoBLE_onReceive when sending bytearray
我正在尝试将 8 位字节数组发送到 rfduino。
草图中,我得到了
void RFduinoBLE_onReceive(char *data, int len) {
int firstbyte = data[0];
Serial.println(firstbyte)
}
如果 firstbyte 超过 32,这工作正常。但是如果我发送 [13,...] 的 byteArray,firstbyte 被解析为 0。
我想我明白为什么(?):
RFduinoBLE 在将传入数据发送到此函数之前将其解析为字符,最多 32 个字节为空字符串。
所以我的问题是:如何使用 RFduinoBLE-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];
}
}
不太确定 right/wrong 去了哪里,但我怀疑要么使用 int firstbyte
而不是 uint8_t firstbyte
或 铸造 [=14= 】 做了一件我没想到的事。
我正在尝试将 8 位字节数组发送到 rfduino。
草图中,我得到了
void RFduinoBLE_onReceive(char *data, int len) {
int firstbyte = data[0];
Serial.println(firstbyte)
}
如果 firstbyte 超过 32,这工作正常。但是如果我发送 [13,...] 的 byteArray,firstbyte 被解析为 0。
我想我明白为什么(?): RFduinoBLE 在将传入数据发送到此函数之前将其解析为字符,最多 32 个字节为空字符串。
所以我的问题是:如何使用 RFduinoBLE-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];
}
}
不太确定 right/wrong 去了哪里,但我怀疑要么使用 int firstbyte
而不是 uint8_t firstbyte
或 铸造 [=14= 】 做了一件我没想到的事。