CDC-ACM 驱动程序返回垃圾数据

CDC-ACM 驱动程序返回垃圾数据

我正在尝试将 u-Blox USB GPS 设备连接到基于 BusyBox 的嵌入式 (armel) Linux 2.6.32 系统。该设备具有本机 CDC ACM USB 接口。系统没有自带cdc_acm,所以我交叉编译了它,传输并安装它,并且它加载成功(由 确认dmesg)。

我插入设备,USB 驱动程序正确地枚举了该设备的地址001:003,并将其分配给cdc_acm创建该/dev/ttyACM0文件的驱动程序。但是,使用串行终端甚至使用命令打开设备cat会导致打印垃圾,而应打印 ASCII NMEA 命令(已确认这可以在其他两个系统上工作)。

stty在文件上运行没有错误(但是报告的数据显然是无效/任意的,因为该设备是 USB 设备而不是串行设备)。lsusb -v -s 1:3还报告设备的正确信息。

我不知道如何进一步调试该问题。我可以采取哪些步骤来找出问题并解决它?

答案1

看起来问题出在终端设置上。

通过手动设置正确的波特率和原始模式,我开始从设备获取有意义的数据:

stty -F /dev/ttyACM0 57600
stty -F /dev/ttyACM0 raw

相关内容