У меня есть строка, которая содержит как числа, так и значения символов, например, «p1200». Мне нужно преобразовать эту строку в массив uint8_t, потому что мне нужно отправить ее из моего xBee.Как преобразовать строку в массив uint8_t на Arduino?
Как я могу преобразовать
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
Пожалуйста, [см. Это] (https://www.arduino.cc/ru/Reference/StringToCharArray). –
@WeatherVane Я пробовал это, но он не работал – Engo
Каким образом это не сработало? –