我有一个包含数字和字符值的字符串,例如“p1200”。我需要将此字符串转换为 uint8_t 数组,因为我需要从我的 xBee 发送它。
我怎样才能转换
String dataString = "p1200"
进入
uint8_t dataArray[]
?
我尝试使用以下代码发送此字符串:
power = ((360 * pulseCount) / 60);
String dataString = "p" + power;
char dataArray[sizeof(dataString)];
dataString.toCharArray(dataArray, sizeof(dataString));
XBeeAddress64 addr64 = XBeeAddress64();
addr64.setMsb(0x13A200);
addr64.setLsb(0x406A42B7);
ZBTxRequest zbTx = ZBTxRequest(addr64, (uint8_t *)dataArray, sizeof(dataArray));
xbee.send(zbTx);
并使用以下代码接收字符串:
String incomingData;
xbee.readPacket();
if (xbee.getResponse().isAvailable()) {
Serial.println(xbee.getResponse().getApiId());
if (xbee.getResponse().getApiId() == ZB_RX_RESPONSE) {
xbee.getResponse().getZBRxResponse(rx);
for (int i = 0; i < rx.getDataLength(); i++) {
incomingData += (char)rx.getData(i);
}
}
}
当我打印时incomingData
,我得到一个奇怪的输出......我认为这是由从字符串到 uint8_t 的转换引起的