我想通过lora发送一个整数(数据包总数)。我想用前10个字节来存储这个整数。所以对于522,前3个字节是53、50和50。后面是7个零。在这之后,我就有了代表我的有效载荷的字节。
在另一端,我会读取前10个字节,并获得我需要的包计数。
我读了很多帖子,但是我不明白如何将整数转换为字节数组,如果可能的话。我相信有一种更优雅的方法来解决这个问题。
void sendMessage(byte payload[], int length) {
int iPt = 552;
String sPt = String(iPt);
byte aPt[10];
sPt.toCharArray(aPt, 10);
LoRa.beginPacket();
LoRa.write(aPt,10);
LoRa.write(payload, length);
LoRa.endPacket();
}
我想在接收端得到的是:53 50 50 0 0 0 0 0 0 0 0.
我得到的是5350500(我猜这个0是空终止?)
我很感激你的帮助谢谢!
1条答案
按热度按时间gupuwyp21#
没有必要将int转换为
String
,然后再将其转换回char[]
。一个
int
(在Arduino中)是16位或2字节的数据,你可以在两个字节中发送它。对于那些不熟悉shiftRight operator的人来说,Arduino有两个帮助函数(highByte()和lowByte()),适合初学者或不熟悉位操作的人。
这两个代码是相同的,第二个更抽象和初学者友好。