我是 Ubuntu 新手(但我很喜欢它)。我想将代码刻录到我的 Arduino Uno 中。上传代码时,出现一条错误消息,提示Serial Port COM1 not fount found. Did you select the correct one from tools -> serial port menu?
。现在,访问工具时,我无法选择串行端口,因为它已被禁用。我附上了它的屏幕截图。我在 Windows 中做过类似的事情。如何在 Ubuntu 上找到串行端口?
答案1
在我的情况下,这个错误是因为在较新版本的 Ubuntu 中,内置的盲文阅读器 (brltty) 正在抢占端口。当我使用以下命令时,我可以看到此错误
sudo dmesg | tail -f
这表明 tty 已与端口断开连接
[ 771.927380] usb 2-1.1:usbfs:接口 0 由 ch341 声明,而“brltty”设置配置 #1
[ 771.928207] ch341-uart ttyUSB0:ch341-uart 转换器现已与 ttyUSB0 断开连接
这里解释得很好:
Ubuntu 22.04 中不存在 /dev/ttyUSB0
我实际应用的修复方法是
sudo apt remove brltty (nb plug and replug the arduino afterwards)
...正如 Jarosław Jaryszew 在上面的帖子中所建议的..顺便说一句,非常感谢他
答案2
据我所知,您正在使用 arduino IDE 的版本1.0.5
,我假设您在 apt 存储库中安装了该版本。
您可以尝试从snapcraft或者来自arduino的网站。
我个人使用的是后者,效果非常好。
另外,无论哪种情况,您都可以尝试 loon Tools
->Port
如果存在一个非/dev/ttyS0
1 端口。尝试使用这些选项。最后,通过搜索,dmesg
您还可以找出 arduno 的端口位置。
最后,另一种方法是拔下你的 arduino,然后重新插入并输入以下命令:
dmesg | tail
为了将最后一个事件记录为 arduino 插入 usb 端口时发生的事件。上面的命令将显示正确的端口。
为了获得更好的结果,您可以使用以下内容:
dmesg | tail -f
并不断从 usp 端口插入和拔出 arduino,直到您看到任何与 arduino 相关的消息。该-f
参数允许实时显示新日志。
答案3
COM1 是 Windows(TM) 的名称 - 它看起来像 /dev/ttyACM0、/dev/ttyUSB0 或 Linux 中的类似名称。
灰色端口往往意味着您尚未先设置主板类型 - 浏览arduino
工具菜单中的设置并将主板设置为“Uno”,您应该会看到“端口”启用并自动填充,这是最有可能的。
答案4
用这个
sudo chmod a+rw /dev/ttyACM0
或者
sudo chmod a+rw /dev/ttyUSB0