簡體   English   中英

通用USB串行設備連續給出1`

[英]Generic usb-serial device continuously gives 1`

我正在嘗試通過Linux( pdf )中的Di245通過其虛擬COM驅動程序(VCD)與Di245通信,但遇到了一個奇怪的問題。 在內部,此設備(FT232BL)使用FTDI芯片組。

單獨附加設備不會注冊為VCD,因此請執行以下操作:

sudo modprobe usbserial vendor=0x0683 product=0x2450

這將導致以下dmesg消息:

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

screen /dev/ttyUSB0 115200

我不斷收到1` 這絕對不是設備正在發送的東西,而且奇怪的是,如果我隨機輸入一個波特率,我會得到相同的東西。

這是報告某些錯誤的方法嗎? 是什么觸發了此行為,我該如何解決?

解決方案如下:

# 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 )可以自動執行此操作:

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'"

它安裝有:

$ sudo cp 99-di245.rules /etc/udev/rules.d
$ sudo udevadm control --reload

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM