【问题标题】:Arduino Uno Crashing when sending serial message over USB通过 USB 发送串行消息时 Arduino Uno 崩溃
【发布时间】:2014-08-24 06:31:41
【问题描述】:

我正在使用 python 通过 USB 向 Arduino UNO 发送简短的串行消息。这是从 OSX 机器上的终端运行的。

import serial

ser = serial.Serial('/dev/tty.usbmodem14121', 9600)
ser.write('H')
ser.close()

以前 Arduino 正在运行代码来读取此消息并对其做出反应,但这导致 Arduino 崩溃并重新启动。简化代码导致完全相同的结果。

int ledRed = 3;
int ledGreen = 5;
int ledBlue = 6;

void setup()
{
    pinMode(ledRed, OUTPUT);
    pinMode(ledGreen, OUTPUT);
    pinMode(ledBlue, OUTPUT);
}

void red()
{
    digitalWrite(ledRed, HIGH);
    digitalWrite(ledGreen, LOW);
    digitalWrite(ledBlue, LOW);
}

void green()
{
    digitalWrite(ledRed, LOW);
    digitalWrite(ledGreen, HIGH);
    digitalWrite(ledBlue, LOW);
}

void loop() 
{
    green();
    delay(1000);
    red();
    delay(1000);
}

谁能解释为什么向主板发送串行会导致主板崩溃并重新启动?

谢谢大家

【问题讨论】:

  • 您应该在setup() 中设置波特率,也许不匹配?如果将Serial.begin(9600) 添加到setup() 会发生什么?
  • 试一试,不幸的是板子仍然崩溃
  • 好的,那我没办法了——但请确保您没有同时打开 Arduino 串行监视器窗口,据报道这是导致问题的原因。

标签: python serial-port arduino


【解决方案1】:

迟到的答案,但 Java 也遇到了类似的问题。问题是当计算机打开串行端口时,Arduino(按设计)会重置。在大多数情况下,这可能是一件好事。当不需要时,可以轻松修改板硬件以不重置。 见the Arduino forum

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    相关资源
    最近更新 更多