昨天我开始在 Arduino 上使用我的 LoRa 模块。我使用示例草图来了解它们是如何工作的。现在我想检查接收到的值来做某些事情,比如打开和关闭 LED。
我的问题是接收到的值对于 LoRa 库的原始示例草图是正确的,但是一旦我尝试将它们存储在变量中,它们就开始不正确。
这是我为获取接收值而编写的代码。
#include <SPI.h>
#include <LoRa.h>
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Receiver");
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
}
void loop() {
// try to parse packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// received a packet
Serial.print("Received packet '");
byte buffer[packetSize];
int index = 0;
// read packet
while (LoRa.available()) {
Serial.println((char)LoRa.read());
buffer[index] = LoRa.read();
index++;
}
char result = char(buffer);
Serial.println(result);
}
}
注意:不是我的代码的所有内容。我部分采用了示例草图来帮助我。
控制台输出如下所示:
Received packet '3' with RSSI -73
⸮
Received packet '4' with RSSI -85
⸮
Received packet '5' with RSSI -84
⸮
...
Received packet '8' with RSSI -83
⸮
Received packet '9' with RSSI -83
⸮
Received packet '1' with RSSI -82
⸮
发件人没有做任何特别的事情,只是数到 16,然后从头开始。这只是一项非常基本的任务,但由于我对这项技术不是很熟悉,所以我不明白如何让它发挥作用。这意味着我得到值而不是'?'。第二个问题是大于 10 的数字会缩小为 1。
我希望您能给我一些建设性的帮助,或者至少提示我如何完成这项工作。