首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通用usb串行设备连续给1

通用usb串行设备连续给1
EN

Stack Overflow用户
提问于 2015-09-28 20:42:32
回答 1查看 2K关注 0票数 0

我正试图在Linux (pdf格式)中通过它的虚拟COM驱动程序(VCD)与Di245进行通信,我遇到了一个奇怪的问题。在内部,这个设备(FT232BL)使用一个FTDI芯片组。

附加设备本身并不注册为VCD,因此我执行以下操作:

代码语言:javascript
运行
复制
sudo modprobe usbserial vendor=0x0683 product=0x2450

这将导致以下dmesg消息:

代码语言:javascript
运行
复制
usbserial: USB Serial support registered for generic
usbserial_generic 3-3:1.0: The "generic" usb-serial driver is only for testing and one-off prototypes.
usbserial_generic 3-3:1.0: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
usbserial_generic 3-3:1.0: generic converter detected
usb 3-3: generic converter now attached to ttyUSB0

我得到了承诺的/dev/ttyUSB0设备。到目前为止,一切似乎都还好。

但是,如果我在代码中打开端口,就会从其中得到一堆1` (交替使用1`)。尝试使用screen

代码语言:javascript
运行
复制
screen /dev/ttyUSB0 115200

我不断地收到1`。这绝对不是设备发送的东西,而且奇怪的是,如果我随机地输入一个波特率,我就会得到同样的东西。

这是一种报告错误的方式吗?是什么触发了这种行为,我该如何应对呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-30 14:01:47

解决办法如下:

代码语言:javascript
运行
复制
# modprobe usbserial vendor=0x0683 product=0x2450
# modprobe ftdi_sio
# echo "0683 2450" >> /sys/bus/usb-serial/drivers/ftdi_sio/new_id

这样,ftdi_sio驱动程序就知道要为哪个供应商/产品提供VCD。以下udev规则(例如,99-di245.rules)可以自动执行此操作:

代码语言:javascript
运行
复制
ACTION=="add", ATTRS{idVendor}=="0683", ATTRS{idProduct}=="2450", RUN+="/sbin/modprobe ftdi_sio" RUN+="/sbin/modprobe usbserial vendor=0x0683 product=0x2450" RUN+="/bin/sh -c 'echo 0683 2450 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"

它安装有:

代码语言:javascript
运行
复制
$ sudo cp 99-di245.rules /etc/udev/rules.d
$ sudo udevadm control --reload
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32831461

复制
相关文章

相似问题

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