【问题标题】:Serial port unavaliable arduino串口不可用的arduino
【发布时间】:2019-03-13 06:55:07
【问题描述】:

尝试将代码上传到 arduino,但无论是在 Arduino IDE 还是 Arduino Create 中,都在上传时返回此错误。在 Linux Tara(薄荷 19 肉桂)上运行。

./opt/arduino-builder/arduino-builder -compile -core-api-version 10611 -hardware opt/arduino-builder/hardware -hardware ./opt/cores -tools opt/arduino-builder/tools -tools ./opt/tools -built-in-libraries opt/libraries/latest -logger humantags -fqbn arduino:avr:mega:cpu=atmega2560 -build-cache /tmp -build-path /tmp/716441957/build -verbose -libraries /tmp/716441957/custom -libraries /tmp/716441957/pinned /tmp/716441957/sketch_oct8a

Sketch uses 8280 bytes (3%) of program storage space. Maximum is 253952 bytes.

Global variables use 443 bytes (5%) of dynamic memory, leaving 7749 bytes for local variables. Maximum is 8192 bytes.

Programming with: Serial

Flashing with command:/home/jesus/.arduino-create/arduino/avrdude/6.3.0-arduino9/bin/avrdude -C/home/jesus/.arduino-create/arduino/avrdude/6.3.0-arduino9/etc/avrdude.conf -q -q -patmega2560 -cwiring -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/arduino-create-agent734074237/sketch_oct8a.hex:i

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

ioctl("TIOCMGET"): Inappropriate ioctl for device

ioctl("TIOCMGET"): Inappropriate ioctl for device

【问题讨论】:

    标签: linux arduino serial-port linux-mint


    【解决方案1】:

    没有直接的方法可以解决这个问题。除此之外,您没有使用 IDE。我会列出你需要检查的东西,我相信这会解决你的问题。

    我不擅长Linux环境,所以我将应用程序名称称为窗口,你去Linux中的相应应用程序。

    1. 转到 linux 设备管理器并查看您的 arduino 板。它应该具有正确的命名,例如“arduino uno at port 3”,然后在您的命令中使用正确的端口。如果此名称不正确,则意味着您的计算机中没有可用的驱动程序。所以,请转到第 2 步。
    2. 在线查找驱动并安装到您的系统中,我不确定 arduino 是否支持 linux,完成后请重复步骤 1。

    因此,我的结论是,您没有正确的驱动程序(强烈相信)或指向错误的端口。我不是udev 规则方面的专家,但这绝对是您在使用这类微控制器时会遇到的问题。

    【讨论】:

      【解决方案2】:

      1# 首先,检查 IDE 中的端口。在 Arduino 工具-> 端口 如果端口被隐藏或者您无法将光标移到此端口上,则在终端中运行此命令。如果一切正常,则跳过此步骤并按照第二部分进行操作。

      sudo apt-get install librxtx-java -y
      
      sudo usermod -aG dialout $USER 
      
      sudo apt-get install gnome-system-tools
      

      2#
      在此之后再次检查第一种方法。如果它不起作用,请运行此命令

      ls -l /dev/ttyACM*
      sudo usermod -a -G dialout <username>
      

      【讨论】:

        【解决方案3】:

        您可能正在运行另一个已在使用此端口的程序。 您应该关闭大多数其他程序,例如 putty 或其他串行监视器应用程序。 否则,请尝试将 Arduino 重新连接到 PC。

        【讨论】:

          【解决方案4】:

          我知道以下这些想法来自于使用 Teensy,但它们可能会对您有所帮助。

          1. 有时会在 Arduino IDE 中列出ACM* 端口。尝试查看ser 端口。我知道当我运行我的 Teensy 时,有时我会切换它们并且需要选择正确的。
          2. 另外,根据我对 Teensy 的经验,您可能需要添加 udev 规则以允许非 root 用户访问端口的权限。这是显示udev 文件的link

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多