前言
最近在捣鼓Arduino,目标机器(Ubuntu 20 和 Arduino Nano Every)。但是突然发现之前可以明明可以上传Arduino的代码和数据线,在一个新的Arduino上不能上传代码了,甚是奇怪,最后发现了原因,是因为两个:
- 线没插稳(正)
- 线不对
遂记录此文。
正文
1. 问题
我们会发现我们的Arduino IDE会显示错误:
arvdude: ser_open: can't open device "dev/ttyacm0": no such file or directory
同时会发现,IDE的port口是白色的,如下:
2. 解决办法
首先我们还是应该check一下我们是否在dialout组。我们通过groups
确认一下我们在不在dialout组里面,如果不在的话请用命令sudo adduser <username> dialout
。
发生这种情况有两种可能,接下来我们分别来介绍一下这两种可能的情况:
- 线没插稳(正)
- 线不对
2.2 线没插稳
顾名思义就是线没有插稳,有可能线和口没有对的很正,这种情况我们将线拔出来重新插进去即可。
2.3 线不对
根据问题《ttyACM0 is missing [closed]》中的描述,当我们使用Data & Power USB Cable的时候,是可以的;但是当我们使用Power USB Cable的时候是不可以的。这其实也很能理解,一个是充电的,一个是传输数据的,不同的数据线还是有不同的功能的。遇到这种情况,我们就换一条可以用的线即可。
2.4 问题解决
最后当问题结局的时候,我们的port口就有信息了~!我这里接了两条线,所以有两个port~。
总结
- 目标机器: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.