我买了一个Arduino Uno并安装了 Arduino IDE 1.6.5。但是当我想将草图上传到 Arduino 板时,我收到此错误:
avrdude: ser_open(): 无法打开设备“COM1”: 没有此文件或目录
ioctl(“TIOCMGET”): 设备的 ioctl 不合适
我正在使用 Ubuntu 14.04 (Trusty Tahr) LTS。
hakan@hakan-pc:~$ ls -l /dev/ttyUSB0
ls: /dev/ttyUSB0'e erişilemedi: Böyle bir dosya ya da dizin yok(In English: No such a file like this)
hakan@hakan-pc:~$ ls -l /dev/ttyS0
crw-rw-rw- 1 root dialout 4, 64 Tem 8 22:40 /dev/ttyS0
当 Arduino 插入计算机时,dmesg | tail
显示:
hakan@hakan-pc:~$ dmesg | tail
[ 21.784795] sound hdaudioC1D3: hda-codec: out of range cmd 3:5:707:ffffffff
[ 21.784969] sound hdaudioC1D3: hda-codec: out of range cmd 3:5:707:ffffffbf
[ 21.786110] sound hdaudioC1D0: hda-codec: out of range cmd 0:5:707:ffffffff
[ 21.792705] sound hdaudioC1D0: hda-codec: out of range cmd 0:5:707:ffffffff
[ 26.849759] sound hdaudioC1D0: hda-codec: out of range cmd 0:5:707:ffffffbf
[ 27.515096] init: Failed to spawn nvidia-persistenced main process: unable to execute: No such file or directory
[ 43.647261] audit: type=1400 audit(1436384452.263:72): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=2246 comm="apparmor_parser"
[ 43.647270] audit: type=1400 audit(1436384452.263:73): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=2246 comm="apparmor_parser"
[ 43.647654] audit: type=1400 audit(1436384452.267:74): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=2246 comm="apparmor_parser"
[ 87.513268] systemd-hostnamed[2572]: Warning: nss-myhostname is not installed. Changing the local hostname might make it unresolveable. Please install nss-myhostname!
我怎么解决这个问题?
答案1
连接您的 Arduino 硬件。打开 Arduino IDE。
转到“工具”。
前往“港口”。
选择Arduino连接的端口。(如果除了Arduino之外没有连接其他外部驱动器,则只有一个端口)
这将告诉 Arduino IDE 你的硬件连接到哪个端口。之后,你将能够成功上传你的草图
答案2
如果你在 Ubuntu 上运行 Arduino IDE(我使用的是 Arduino 1.5.7 和 Ubuntu 14.04),很可能无法上传到 Arduino 开发板,原因是出现以下错误:
avrdude: ser_open(): can't open device "/dev/ttyUSB0": Permission denied
ioctl("TIOCMGET"): Inappropriate ioctl for device
要修复此问题,请输入命令:
$ sudo usermod -a -G dialout <username>
$ sudo chmod a+rw /dev/ttyUSB0
您的 Ubuntu 中的用户名在哪里,/dev/ttyUSB0 是您的 Arduino 板检测到的设备。
第一行将组(拨出)添加到用户名
第二行对“/dev/ttyUSB0”执行写入和读取权限
答案3
我在 Ubuntu 14.04 上使用 Arduino Uno 时遇到了同样的错误。对我有用的方法是首先在“工具”>“端口”下选择适当的端口,然后使用以下命令更改端口的权限:
sudo chmod a+rw /dev/ttyUSB0
然后错误消失了,我可以正常上传了。
答案4
改变lib/首选项.txt文件:
来自的字符串
串行端口=COM1
到
串行.端口=/dev/ttyUSB0