У меня ubuntu 18.04 с IDE Arduino. Проблема, с которой я всегда сталкиваюсь, заключается в том, что когда я хочу загрузить код и подключить кабель USB от Arduino к ноутбуку, я всегда получаю одну и ту же ошибку:
Ошибка:
An error occurred while uploading the sketch
avrdude: ser_open(): can't open device "/dev/ttyACM0": Device or resource busy
Я всегда проверяю порт в IDE. У меня версия 1.8.12, тестировал с другими версиями, но была та же ошибка. С windows у меня такой проблемы не было. Почему это происходит и как я могу это решить? Это очень серьезная проблема, и мне нужно много раз нажимать кнопку загрузки (в IDE -> Ctrl + U) или удалять, а затем снова вставлять кабель в компьютер. Так что на все это у меня уходит минута Что я должен делать? Я в отчаянии и зол на эту проблему.
Примечание: такая же проблема возникла в Ubuntu 19.04.
Кстати, Arduino IDE быстрее компилирует большой код, чем Windows. Невероятно другое время !!! Спасибо!!!
После того, как вы напишете свой код и скомпилируете его, откройте терминал.
Если ваш порт, скажем, ttyACM0
, выполните следующее:
ls /dev/ttyACM0
sudo chmod a+rw /dev/ttyACM0
Введите свой пароль в командной строке и нажмите Enter. А теперь можете идти и загружать код
ModemManager может конфликтовать с /dev/ttyACM0
. У вас есть два варианта:
systemctl stop ModemManager.service
Это остановит ModemManager до следующей перезагрузки. Вам нужно будет запускать эту команду каждый раз, когда вы перезагружаете компьютер.
Вы можете полностью удалить ModemManager, но это означает, что вы больше не сможете использовать какой-либо модем с Ubuntu. Поэтому, если вы используете USB-модем для доступа в Интернет, не удаляйте ModemManager.
Вот что делает ModemManager:
ModemManager — это демон, активируемый DBus, который контролирует мобильные широкополосные (2G/3G/4G) устройства и соединения. Будь то встроенные устройства, USB-ключи, телефоны с Bluetooth-соединением или профессиональные устройства RS232/USB с внешними источниками питания, ModemManager может подготовить и настроить модемы и установить с ними соединения.
Если вы уверены, что никогда не будете использовать модем, выполните следующую команду, чтобы полностью удалить модем:
sudo apt-get --purge remove modemmanager