Python 通过USB发送串行消息时Arduino Uno崩溃

Python 通过USB发送串行消息时Arduino Uno崩溃,python,serial-port,arduino,Python,Serial Port,Arduino,我正在使用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 le

我正在使用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);
}
有人能解释一下为什么向主板发送串行数据会导致主板崩溃并重新启动吗


谢谢大家

迟来的回答,但Java也遇到了类似的问题。问题是,当计算机打开串行端口时,Arduino(按设计)复位。在大多数情况下,这可能是一件好事。当不需要时,可以轻松修改电路板硬件,使其不复位。
请参见您应该在
设置()中设置波特率,可能存在不匹配?如果您将
Serial.begin(9600)
添加到
setup()
,会发生什么情况?尝试一下,不幸的是,电路板仍然会崩溃。好吧,我当时没主意了-但请确保您没有同时打开Arduino串行监视器窗口,这被报告为导致问题。