我有带 Arduino IDE 的 ubuntu 18.04。我一直遇到的问题是,当我想上传代码并将 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)或多次移除然后再次将电缆插入 PC。所以我花了一分钟才完成这一切我该怎么办?我对这个问题感到绝望和愤怒。
注意:Ubuntu 19.04 也出现了同样的问题。
顺便说一句,arduino IDE 编译大代码的速度比 windows 快。时间差得令人难以置信!!!谢谢!!!
答案1
ModemManager 可能与 冲突/dev/ttyACM0
。您有两个选择:
暂时禁用 ModemManager
systemctl stop ModemManager.service
这将停止 ModemManager直到下次重启。每次重新启动计算机时都需要运行此命令。
完全删除 ModemManager
您可以完全删除 ModemManager,但这意味着您将无法再在 Ubuntu 上使用任何调制解调器。因此,如果您使用 USB 调制解调器上网,不要删除 ModemManager。
ModemManager 的作用如下:
ModemManager 是一个 DBus 激活的守护进程,它控制移动宽带(2G/3G/4G)设备和连接. 无论是内置设备、USB 加密狗、蓝牙配对电话,还是带有外部电源的专业 RS232/USB 设备,ModemManager 都能够准备和配置调制解调器并与它们建立连接。
如果您确定永远不会使用调制解调器,请运行以下命令完全删除调制解调器:
sudo apt-get --purge remove modemmanager
答案2
编写代码并编译后,打开终端。如果您的端口是,请ttyACM0
运行以下命令:
ls /dev/ttyACM0
sudo chmod a+rw /dev/ttyACM0
在提示符下输入密码并点击Enter。现在,你就可以上传代码了