Arduino Tools > Serial Port 灰显



我正在运行Debian 7(Linux Crunchbang(,并希望使用Arduino IDE来编程我的Arduino UNO。为此,我安装了软件包arduino.当我启动Arduino时,我被要求将我的用户添加到dialout组中。所以我对sudo usermod -a -G dialout <my-username>做了.

但是,当我在命令行中使用arduino启动Arduino IDE时,IDE会打开,但我无法将程序加载到Arduino。错误消息是"找不到串行端口 COM1。您是否从"工具>串行端口"菜单中选择了正确的一个?当我选择串行端口时,选项">串行端口工具"显示为灰色。

我认为这是因为我没有授予对 USB 端口 (ttyACM0( 的读写权限。所以我做了sudo chmod a+rw /dev/ttyACM0但该选项仍然显示为灰色。

chdmod 适用于我的 under Debian (proxmox(:

# chmod a+rw /dev/ttyACM0

对于安装 arduino IDE:

# apt-get install arduino arduino-core arduino-mk

将用户添加到拨出组:

# gpasswd -a user dialout

重新启动 Linux。

尝试使用文件>示例> 01.基本> 闪烁,将 2 个延迟更改为延迟 (60(,然后单击上传按钮在 Arduino 上进行测试,LED 必须闪烁得更快。 ;)

sudo arduino是我在ubuntu上让Arduino IDE工作(串行端口和上传(的唯一方法12.04(64(事实上,在我的情况下,要使用的串行端口也是/dev/ttyACM0。另外两个(ttyS4 和 ttyS0(在尝试上传到 Uno 时出错。玩得开心

尝试断开 USB 的连接并重新插入。它只是灰显,因为 ide 找不到 uno 插入的任何 com 端口。

另一种解决方案是尝试所有COM端口,看看哪个有效。

最后,如果全部失败,请尝试重新启动计算机。

关闭 arduino IDE 的所有实例打开 ~/.arduino/preferences.txt 并查找以下行:

serial.port=<not your port>

并将其更改为您的端口:

serial.port=/dev/ttyACM0

您可能需要注销才能生效

如果它对任何人都有帮助,我在使用 Ubuntu 22.04 时遇到了这个问题。问题源于:

    AppArmor
  • (AppArmor 拒绝错误,使用 DMESG 进行日志记录(
  • brltty (CH34x 转换器现已与 ttyUSB0 断开连接(

通过删除两者来解决它:

  • https://www.simplified.guide/ubuntu/remove-apparmor
  • sudo apt remove brltty

您可以禁用 apparmor,它应该可以工作,但是这使得像 firefox 这样的应用程序毫无用处。我的建议是完全删除它

在文本编辑器中打开$arduinoHome/arduino并修改最后一个字符串:

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base "$@"

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dgnu.io.rxtx.SerialPorts="/dev/ttyACMN" processing.app.Base "$@"

(将属性 gnu.io.rxtx.SerialPorts 设置为/dev/ttyACMN,其中 ttyACMN 是您使用的串行端口的名称(

它可能会暂时修复 RXTX 库中的错误。 帮助我使用 Arduino1.0.5 IDE 上传草图。

也许会对某人有所帮助。

就我而言,这被证明是一个糟糕的USB集线器。

"lsusb"命令可用于显示所有已识别的设备。如果未插入设备,则设置速度的选项将被禁用。

如果设备被识别,lsusb 命令应输出类似于字符串"Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO("的内容。我的是一个RFDuino<</p>

div类="ans>

就我而言,我通过卸载通过apt-get安装的Arduino版本而不是通过官方网站安装

来解决此问题。

使用最新版本的Arduino,我没有遇到Ubuntu 18.04上描述的问题。

所以我对sudo usermod -a -G dialout <my-username>做了.

您需要在将自己添加到组后注销,以便应用这些更改。只需注销并重新登录,菜单应该可用。

安装 rx-tx lib for java 在终端中运行此命令

sudo apt-get install librxtx-java -y

输出端口

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

帮助重新注册 USB 设备

我在 ubuntu 18.04 中解决了以下与串口相关的问题,如下所示:

问题 1:无法打开/dev/ttyACM0:权限被拒绝
解决方案:使用此终端命令授予读取/写入串行端口的权限---> sudo chmod a+rw /dev/ttyACM0在这里将 tty 端口替换为您各自的 ubuntu 端口。

问题 2:无法打开/dev/ttyACM0(端口繁忙(解决方案:当串口繁忙或已被占用时,会出现此问题。所以用命令---> fuser -k /dev/ttyACM0杀死繁忙的串口。在这里将 tty 端口替换为您各自的 ubuntu 端口。

问题 3:/dev/ttyACM0 上的主板不可用解决方案 :在这种情况下,工具菜单中的串行端口将灰显。我为此用谷歌搜索了很多,但我没有一个解决方案对我有用。最后,我尝试了不同的arduino板和USB连接器,它对我有用。因此,如果您有旧的arduino板(可以使用所需的驱动程序解决(或有缺陷的arduino板,那么只会出现此问题。

与菲利普·柯克布莱德的评论相同。这不是权限问题,但是使用从他们的网站下载的Arduino IDE解决了我的问题。谢谢!Michael

以下步骤安装

IDE并删除错误java.lang.NullPointerException thrown while loading gnu.io.RXTXCommDriver,该错误通常与Ubuntu中的arduino一起安装apt-get命令。

安装集成环境

sudo apt-get install arduino

用于删除 IDE 中的 Java 错误

sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-set-default

这也显示了由于错误而灰显的串行端口

我遇到了同样的问题,我挣扎了几天,阅读了所有的博客文章,观看了视频,最后在我更换了 uno 板之后,它运行良好。但在我这样做之前,我尝试了一些事情,我认为这些事情也有效果。

  • 将文件解压缩到opt文件夹,更改首选项-->行为-->可执行文本文件-->询问该怎么办。之后,双击文件夹上的arduino,选择由终端运行
  • 添加了用户拨出,如其他答案中所述。

希望这个答案对你有帮助。

对于Windows解决方案,我发现在设备管理器中禁用并重新启用Arduino,然后重新启动Arduino IDE可以毫无故障地解决问题(无需拔掉插头(。为什么首先会发生此错误超出了我的范围。也许Linux的相应方法可以解决您的问题。

稍微相关(不是真的(,不久前我在AVR板上遇到了一个问题,通过在驱动程序设置中将设备设置为新的COM端口来修复。再说一次,不管你们 Linux 兔子怎么做,我相信它会是饼干和奶油。

干杯兄弟,

我遇到了同样的问题。我的解决方案是安装和使用 java7:

sudo apt-get install openjdk-7-jre
sudo update-alternatives --config java

选择引用 java-7 路径的数字。

您可能没有正确的权限。尝试将自己添加到这些组中。

sudo adduser username ttyl
sudo adduser username serial
sudo adduser username uucp

然后重新启动系统并检查您是否已添加到组中。

groups username

祝你好运!

尝试以管理员身份运行...运行终端,键入 sudo arduino,键入您的 root 密码,然后...:)