【发布时间】:2016-07-20 04:28:11
【问题描述】:
我有一个包含数字和字符值的字符串,例如“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的转换造成的
【问题讨论】:
-
请see this。
-
@WeatherVane 我试过了,但没用
-
在什么情况下不起作用?
-
我的意思是:(1) 你到底尝试了什么,(2) 你希望它做什么,以及 (3) 它做了什么与你希望的不同?
-
...我已经相应地更新了我的答案。
标签: c string arduino xbee uint8t