前言

最近在捣鼓Arduino,目标机器(Ubuntu 20 和 Arduino Nano Every)。但是突然发现之前可以明明可以上传Arduino的代码和数据线,在一个新的Arduino上不能上传代码了,甚是奇怪,最后发现了原因,是因为两个:

  1. 线没插稳(正)
  2. 线不对

遂记录此文。

正文

1. 问题

我们会发现我们的Arduino IDE会显示错误:

arvdude: ser_open: can't open device "dev/ttyacm0": no such file or directory

Screenshot from 2023-10-17 21-55-23

同时会发现,IDE的port口是白色的,如下:

Screenshot from 2023-10-18 10-10-14

2. 解决办法

首先我们还是应该check一下我们是否在dialout组。我们通过groups确认一下我们在不在dialout组里面,如果不在的话请用命令sudo adduser <username> dialout

发生这种情况有两种可能,接下来我们分别来介绍一下这两种可能的情况:

  1. 线没插稳(正)
  2. 线不对

2.2 线没插稳

顾名思义就是线没有插稳,有可能线和口没有对的很正,这种情况我们将线拔出来重新插进去即可。

2.3 线不对

根据问题《ttyACM0 is missing [closed]》中的描述,当我们使用Data & Power USB Cable的时候,是可以的;但是当我们使用Power USB Cable的时候是不可以的。这其实也很能理解,一个是充电的,一个是传输数据的,不同的数据线还是有不同的功能的。遇到这种情况,我们就换一条可以用的线即可。

2.4 问题解决

最后当问题结局的时候,我们的port口就有信息了~!我这里接了两条线,所以有两个port~。

Screenshot from 2023-10-17 21-59-13

总结

  • 目标机器:Ubuntu 20 和 Arduino Nano Every
  • 问题:arvdude: ser_open: can't open device "dev/ttyacm0": no such file or directory
  • 解决办法: (1) 线没插不正,重新插 (2) 线不对,换一条能够传输data的线

总的来说,硬件坑也还是挺多的,小心坑坑~!

参考

[1] avrdude: ser_open(): can't open device "/dev/ttyACM0": Device or resource busy
[2] ttyACM0 is missing [closed]

Q.E.D.


立志做一个有趣的碳水化合物