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
7
задан 9 September 2012 в 17:00

4 ответа

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

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

0
ответ дан 9 September 2012 в 17:00

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

    sudo ./arduino

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

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

Эта проблема была исправлена ​​с помощью ответа, приведенного в https://askubuntu.com/a/58122/206687 . Короче говоря, если вы добавите себя в группу dialout, проблема должна быть решена.

    sudo usermod -a -G dialout $USER

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

0
ответ дан 9 September 2012 в 17:00

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

0
ответ дан 9 September 2012 в 17:00

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

0
ответ дан 9 September 2012 в 17:00

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

Похожие вопросы: