首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我试图与arduino通信nodemcu时,有一个无效输入错误。

当我试图与arduino通信nodemcu时,有一个无效输入错误。
EN

Stack Overflow用户
提问于 2019-12-25 18:36:38
回答 1查看 639关注 0票数 0

我试图从Arduino发送多个数据到nodemcu。但它总是显示出错误

deserializeJson()代码InvalidInput失败

这是代码

Arduino UNO

代码语言:javascript
复制
#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

代码语言:javascript
复制
#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);
  }
}

这是结果

代码语言:javascript
复制
{

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
EN

回答 1

Stack Overflow用户

发布于 2020-11-02 08:07:16

页面如何在两个板之间进行串行通信?说,InvalidInput的原因是:

  • 时钟偏斜
  • 不良布线/电气噪音
  • 接收器读取速度太慢,字节数下降
  • 电压失配(5V对3.3V)

除了在两边使用相同的MCU之外,您不能对时钟倾斜做任何事情。

最好提高“调试”串口的速度。它必须比“传输”串口快一个数量级。

您可以修复电压不匹配与逻辑电平转换器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59480993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档