繁体   English   中英

Python serial.write()不会将串行数据发送到Arduino

[英]Python serial.write() does not send serial data to Arduino

我正在编写一个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作为响应。

有关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

您需要添加Serial.available()

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM