gpt4 book ai didi

Python从arduino读取数据错误

转载 作者:行者123 更新时间:2023-12-01 00:18:12 27 4
gpt4 key购买 nike

我对使用串口非常陌生,我有一个问题我确实无法解决。让我用我一直使用的代码来解释这个问题。

Python 代码:

from time import sleep
import serial
ser = serial.Serial('COM8', 9600)
incoming=[10,15]
while True:
ser.write((incoming))
msg=(ser.readline())
print(msg.decode('utf-8'))
sleep(3)
int incoming[3];

arduino代码:

void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
Serial.println("Ready");
}

void loop() {
if(Serial.available()) {
for (int i = 0; i < 3; i++) {
incoming[i] = Serial.read();
}
if (incoming[1]==-1){
Serial.println(incoming[0]);
Serial.println(incoming[1]);
Serial.println(incoming[2]);
Serial.println(incoming[3]);
}
}

当它运行时(我首先加载arduino代码,然后从python运行脚本)代码运行成功,但输出如下;准备好10-1-115-1-110

就这样继续下去……为什么会出现这些-1?我在互联网上搜索过,但根本找不到任何可以解决问题的方法。对于这个问题的任何帮助,我将不胜感激。非常感谢。

最佳答案

查看 Arduino 文档。

Serial.read() 中的 -1 表示“没有可用数据”。

再长一点:

您正在等待串行接口(interface)上​​有可用字符。之后,您尝试读取 4 个字符,但没有人知道它们是否已经可用。 (串行接口(interface)没那么快,μC 快得多)因此,在 Python 脚本中的下一个字符到达之前,您会读取“无字符”两次。

关于Python从arduino读取数据错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59151106/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com