我目前正在进行一个项目,在这个项目中,我必须通过与cts/rts硬件流量控制的USB<>Serial连接与一个定制的声纳板进行通信,波特率为4,499,456。MATLAB发送和接收数据的代码已经可用,并在Windows上进行了充分的测试。
在linux上执行MATLAB代码时会出现这个问题(Ubuntu14.10/15.04)。在板上切换LED的命令(写)和接收信息的命令(读)都不起作用。Python端口的MATLAB代码使用pyserial和pylibftdi库确实允许编写,还可以挂起接收数据。
有没有人知道为什么它能在Windows上工作,而不是Ubuntu呢?也许是司机的问题?还是与Linux上的cts/rts有关?
lsusb
输出
Bus 002 Device 004: ID 0403:6014 Future Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC
dmesg
输出
[11906.209231] usb 2-3: new high-speed USB device number 5 using ehci-pci
[11906.346701] usb 2-3: New USB device found, idVendor=0403, idProduct=6014
[11906.346713] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[11906.346720] usb 2-3: Product: USB <-> Serial Converter
[11906.346725] usb 2-3: Manufacturer: FTDI
[11906.346730] usb 2-3: SerialNumber: FT69T4N
[11906.351716] ftdi_sio 2-3:1.0: FTDI USB Serial Device converter detected
[11906.351800] usb 2-3: Detected FT232H
[11906.352234] usb 2-3: FTDI USB Serial Device converter now attached to ttyUSB1
编辑:只是记录我的进度,以防有人遇到同样的问题。问题似乎在于错误率;将其更改为115200允许从设备中读取数据,但却会给设备发送数据造成混乱。
发布于 2017-01-11 15:14:19
显然,FTDI驱动程序不能很好地处理非常高/非标准的波德率。最后我用300万英镑的波特率来解决这个问题。
https://stackoverflow.com/questions/36454914
复制相似问题