Arduino IDE не подключается к микроконтроллеру

Я получаю эту ошибку при попытке подключиться к Arduino через последовательный порт USB. Я использую Arduino IDE 1.0.1 и 64-битную версию Ubuntu 12.04. Это повторяющаяся проблема с 10.04 и происходит с некоторыми другими программами, которые также используют последовательное соединение. У меня нет проблем с получением последовательных данных из Arduino с использованием Python или Screen. В противном случае Arduino IDE работает нормально.

processing.app.SerialException: Error opening serial port '/dev/ttyACM0'.
at processing.app.Serial.<init>(Serial.java:178)
at processing.app.Serial.<init>(Serial.java:92)
at processing.app.SerialMonitor.openSerialPort(SerialMonitor.java:207)
at processing.app.Editor.handleSerial(Editor.java:2447)
at processing.app.EditorToolbar.mousePressed(EditorToolbar.java:353)
at java.awt.Component.processMouseEvent(Component.java:6386)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3268)
at java.awt.Component.processEvent(Component.java:6154)
at java.awt.Container.processEvent(Container.java:2045)
at java.awt.Component.dispatchEventImpl(Component.java:4750)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4294)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
at java.awt.Container.dispatchEventImpl(Container.java:2089)
at java.awt.Window.dispatchEventImpl(Window.java:2518)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672)
at java.awt.EventQueue.access$400(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:631)
at java.awt.EventQueue$2.run(EventQueue.java:629)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
at java.awt.EventQueue$3.run(EventQueue.java:645)
at java.awt.EventQueue$3.run(EventQueue.java:643)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:642)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Caused by: gnu.io.UnsupportedCommOperationException: Invalid Parameter
at gnu.io.RXTXPort.setSerialPortParams(RXTXPort.java:171)
at processing.app.Serial.<init>(Serial.java:163)
... 35 more

4 ответа

У меня тоже была эта проблема, оказалось, что она была вызвана тем, что Serial Monitor настроен на скорость 14400. Поскольку вы не можете изменить настройку, не имея работающего последовательного порта, единственный способ сделать это - выйти из интерфейса Arduino и отредактируйте файл Preferences.txt (в Unix он находится в ~/.arduino/preferences.txt). Ищу Serial.debug_rate и изменить его на 9600, Перезапустите интерфейс Arduino и попробуйте загрузить простой эскиз (например, "моргание") и посмотрите, решит ли он проблему.

Я не уверен, почему это произошло - я использовал 14400, и у меня никогда не было проблем. Я полагаю, это всего лишь одна из тех странных проблем, которые никогда не имеют повторяемой причины?

У меня была такая же ошибка. Насколько я могу судить, это проблема с разрешениями. Проблема больше не возникала, когда я запускал Arduino IDE с правами root. То есть я запустил его так:

    sudo ./arduino

Я знаю, что это плохое решение, но пока оно работает. Я попытался добавить доступ для чтения / записи к файлу последовательного устройства, как упомянуто в https://wiki.archlinux.org/index.php/arduino, но это не произвело никакого эффекта и все еще вызывало ошибку, если я пытался запустить его без разрешения root, Я все еще ищу лучшее решение.

РЕДАКТИРОВАТЬ:

Эта проблема была исправлена ​​с помощью ответа, приведенного в /questions/159770/izmenenie-razreshenij-na-posledovatelnyij-port/159788#159788. Короче говоря, если вы добавите себя в dialout группа, проблема должна быть решена.

    sudo usermod -a -G dialout $USER

Просто выйдите из системы и войдите снова после выполнения этой команды, и вы сможете без проблем получить доступ к последовательному порту.

Попробуйте установить версию 1.0.5 Arduino IDE.

Я нашел более простой способ без использования терминала. В Arduino IDE, перейдите в File-> Preferences и внизу всплывающего окна, они дают вам ссылку на файл'ferences.txt'. Нажмите на это, и это откроет текст. УБЕДИТЕСЬ В ЭТОЙ ТОЧКЕ, ЧТОБЫ ЗАКРЫТЬ ВАШУ IDE ARDUINO. Внесите изменение в "9600" Скорость последовательной отладки, сохраните и выйдите. Откройте вашу IDE, и она должна работать сейчас.

Другие вопросы по тегам