我试图从Arduino发送多个数据到nodemcu。但它总是显示出错误
deserializeJson()代码InvalidInput失败
这是代码
Arduino UNO
#include <SoftwareSerial.h>
#include <ArduinoJson.h>
SoftwareSerial s(5,6);
void setup() {
s.begin(9600);
}
void loop() {
StaticJsonDocument<1000> doc;
doc["data1"] = 100;
doc["data2"] = 200;
serializeJson(doc,s);
delay(1000);
}nodemcu
#include <SoftwareSerial.h>
SoftwareSerial s(D6,D5);
#include <ArduinoJson.h>
void setup() {
// Initialize Serial port
Serial.begin(9600);
s.begin(9600);
while (!Serial) continue;
}
void loop() {
StaticJsonDocument<200> doc;
while(s.available()){
//delay(1000);
Serial.write(s.read());
auto error = deserializeJson(doc,s);
if(error) {
Serial.println();
Serial.print(F("deserializeJson() failed with code "));
Serial.println(error.c_str());
}
serializeJsonPretty(doc,Serial);
delay(1000);
}
}这是结果
{
deserializeJson() failed with code IncompleteInput
false"
deserializeJson() failed with code InvalidInput
null:
deserializeJson() failed with code InvalidInput
100"
deserializeJson() failed with code InvalidInput
null:
deserializeJson() failed with code InvalidInput
200{
deserializeJson() failed with code IncompleteInput
false"
deserializeJson() failed with code InvalidInput
null:
deserializeJson() failed with code InvalidInput发布于 2020-11-02 08:07:16
页面如何在两个板之间进行串行通信?说,InvalidInput的原因是:
除了在两边使用相同的MCU之外,您不能对时钟倾斜做任何事情。
最好提高“调试”串口的速度。它必须比“传输”串口快一个数量级。
您可以修复电压不匹配与逻辑电平转换器。
https://stackoverflow.com/questions/59480993
复制相似问题