我已经在Sublime Text 2 上成功安装了 stino ,但是当我尝试将我的代码上传到Arduino Uno时,输出如下:
上传 /home/lucas/Arduino_Build/programa_teste/programa_teste.hex 到 Arduino Uno
... [Stino - 上传时出错。]
我安装了 Arduino IDE,它工作正常,只有 Sublime Text 不能上传代码。
我已经在Sublime Text 2 上成功安装了 stino ,但是当我尝试将我的代码上传到Arduino Uno时,输出如下:
上传 /home/lucas/Arduino_Build/programa_teste/programa_teste.hex 到 Arduino Uno
... [Stino - 上传时出错。]
我安装了 Arduino IDE,它工作正常,只有 Sublime Text 不能上传代码。
好吧,正如@Bibhas 所说,您的问题是/dev/ttyACM0
权限错误,这与 Arduino 或崇高文本无关。默认情况下,Linux 内核在没有用户权限的情况下创建字符设备。
但好的是它可以改变!
快速简便的解决方案是将您当前的用户添加到dialout
组中:
sudo adduser YOU dialout
其中 YOU 是您的用户名,然后注销并重新登录以将这些新权限传播到您的 shell 中。
暗示:
有一个更复杂的解决方案是创建一个 udev 规则,例如:
/etc/udev/rules.d/48-arduino.rules
SUBSYSTEM!="usb_device", ACTION!="add", GOTO="arduino_end"
SUBSYSTEM=="tty", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", MODE="660", GROUP="arduino", SYMLINK+="arduino.leonardo"
LABEL="arduino_end"
它创建了一个/dev/arduino
您需要创建的 arduino 组可读和可写的设备(或者您可以使用dialout
非常好的默认组):
addgroup arduino
adduser YOU arduino
然后重新加载您的规则:
sudo udevadm control --reload-rules
第二个提示的好处是,当您拔下 arduino 时重新插入您的 arduino,您不会让它奇怪地更改设备编号,它将保留名称。如果您没有使用 arduino leonardo,您可以使用 lsusb 检查您的设备 idvendor/idproduct:
% lsusb
… ↓↓↓↓ ↓↓↓↓
Bus 006 Device 105: ID 2341:0036 Arduino SA
…
高温高压
我今天也有同样的问题,不可思议的事情发生了。USB 电缆为 Arduino 供电,但不允许通信。我们的解决方案是更换 USB 电缆,然后一切正常