【问题标题】:Communication Between Arduino and Processing via Serial is CorruptedArduino与串行处理之间的通信已损坏
【发布时间】:2013-03-01 13:48:05
【问题描述】:

我已将以下草图上传到我的 Arduino Uno Rev3:

void setup() {
    Serial.begin(9600);
}

void loop() {
    Serial.println("Hello, World!");
    delay(10);
}

当我运行它时,你好,世界!按预期连续打印到串行监视器。

我有以下处理草图:

import processing.serial.*;

Serial port;

void setup() {
    port = new Serial(this, "/dev/cu.usbmodem1421", 9600);
}

void draw() {
}

当我运行处理草图时,串行监视器输出被损坏。 Hello, World! 的简洁线条最终看起来像这样:

Hello, Wold!
Hell, Wrld!
He
Hello, o, Worlorld!
H
Hello,World!
ello World!
Hell, World!
Helo, orld
Hello,Worl!
Hello World!
d!
HellHello, W, World!

我想通过串口在 Processing 和 Arduino 之间进行通信,但如果输出损坏,我就不能。这可能是什么原因造成的?

【问题讨论】:

    标签: arduino processing


    【解决方案1】:

    您是说您在运行处理程序草图的同时打开了 Arduino 串行监视器?如果是这样,你不能这样做:你不能让两个应用程序同时尝试通过同一个端口与 Arduino 通信。

    另外,增加延迟(尝试 100) - 您正在淹没缓冲区。您没有显示从串口读取的处理代码;那是哪里?

    【讨论】:

    • 看起来不错,看来您写入串行的速度超过了 9600 BAUD 的传输速度。
    • 我没有意识到当 Arduino 串行监视器打开时您无法运行处理。这绝对是问题所在,因为我将延迟增加到 10000 并且仍然有相同的结果。为了简单起见,我没有包含任何处理代码来读取数据,因为只是连接到端口就会导致问题。因此,在串行上查看数据的正确方法似乎是直接通过处理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多