首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为每个Arduino获取唯一ID

如何为每个Arduino获取唯一ID
EN

Stack Overflow用户
提问于 2016-12-15 20:20:47
回答 1查看 1.6K关注 0票数 2

我使用了两个Arduino Nano,并希望将它们的名称更改为/dev中列出的名称,因为目前它们总是ttyUSB<NUMBER>

如何获取唯一的序列号来创建udev规则?

我试图通过udevadm获取它,但它为两个Arduinos返回相同的序列ID。

代码语言:javascript
运行
复制
/var/log: udevadm info -a -n /dev/ttyUSB0 | grep '{serial}'
    ATTRS{serial}=="0000:00:14.0"
EN

回答 1

Stack Overflow用户

发布于 2017-01-09 01:24:20

Arduino Nano基于ATmega328,它没有内置的USB控制器。主板上的USB连接器连接到外部USB到TTL转换器IC。因此,您在PC端看到的所有USB设备参数都不属于Arduino本身,而属于USB芯片。

这些芯片中的许多都可以用唯一的序列号单独编程。或者,您也可以使用插入Arduino主板的PC端口号作为唯一标识符。

您尝试的udevadm命令显示了您的Arduino板所插入的PC中的USB控制器的“串行”,而不是Arduino板上的USB芯片的串行。

取而代之的是udevadm info -n /dev/ttyUSB0 -q all。带有序列号的行将类似于E: ID_SERIAL_SHORT=12345678。如果该行缺失或确实包含所有主板的相同编号-请使用以下udev规则根据USB端口号分配唯一别名:

代码语言:javascript
运行
复制
ACTION=="add", KERNEL=="ttyUSB*", SYMLINK+="arduino/tty-%s{../busnum}-%s{../devpath}"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41164060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档