【问题标题】:Python serial.write() does not send serial data to ArduinoPython serial.write() 不向 Arduino 发送串行数据
【发布时间】:2017-09-06 13:01:42
【问题描述】:

我正在编写一个 Python 脚本,它将一个字符发送到 Arduino,然后 Arduino 将接收到的字符打印回来。但在这种情况下,Arduino 总是给出一个垃圾值。执行 Python 脚本时也没有错误。

我查看了多个博客、文章和教程并按照确切的步骤操作,但没有找到解决方案。

这是我的 Python 脚本:

import serial
ser = serial.Serial("/dev/ttyACM0",9600)
ser.write('8')
read=ser.readline()
print(read)

这是 Arduino 代码:

int temp;
void setup() {
  Serial.begin(9600);
  temp=5;
}

void loop() {
  temp=Serial.read();
  Serial.println(temp);
  delay(1000);
}

Arduino 总是打印 -1 作为响应。

【问题讨论】:

    标签: python arduino raspberry-pi pyserial


    【解决方案1】:

    Serial.read() 上的文档:

    退货

    传入串行数据的第一个字节可用(如果没有可用数据,则为 -1)- int

    按照 Ivan Sheigets 的建议或

    void setup() {
      Serial.begin(9600);
      Serial.print("You sent: ");
    }
    
    void loop() {
      int temp=Serial.read();
      if(temp>=0)
        Serial.print((char)temp);
    }
    

    确保将传入的值转换为 char (char)temp

    【讨论】:

      【解决方案2】:

      您需要添加Serial.available()

      void loop() 
      {
          if (Serial.available() > 0)
          {
            temp=Serial.read();
            Serial.print(" I received:");
            Serial.println(temp);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多