首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows和Linux下USB串行通信的区别

Windows和Linux下USB串行通信的区别
EN

Stack Overflow用户
提问于 2017-10-27 03:29:53
回答 1查看 546关注 0票数 1

我在学校为一个机器人项目买了一台Variense VMU931惯性测量单元(IMU),我很难让它与Ubuntu的笔记本电脑进行可靠的通信。我使用C++和termios连接到它,使用8n1,没有奇偶,诸如此类。我已经尝试了我能想到的每一个设置的排列,但我仍然无法向IMU可靠地发送命令。

我给Variense支持部门打了电话,并与编写他们软件的工程师进行了交谈,他说这是一个众所周知的问题。显然,它在Windows中工作得很好( Windows演示软件在我的设备上运行得很好),但我们都不知道Windows中的USB串行仿真和Linux中的USB串行仿真有很大的不同。

该文件顶部的构造函数显示了如何打开和配置端口:

https://github.com/jsford/FFAST/blob/master/VMU931/src/vmu.cpp

任何帮助都会很好。我一直在为这件事而发狂!谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-27 09:36:56

使用cu实用程序运行具有不同参数的测试。

要调试这个问题:直接在Linux上运行带有Wireshark的USB数据包捕获,并在运行在VirtualBox/VmWare中的Windows上运行。比较一下交通情况。

检查为该USB设备选择并加载了哪个内核模块。为此使用/sys/文件系统:这个虚拟fs包含来自内核的关于使用什么的信息。此外,命令的lsmod-kind显示了内核模块的使用情况。USB的驱动程序选择取决于类似于<usb-manufacturer-id>:<usb-product-id>的内容。

将一些printf放到内核模块中,看看哪里失败了。使用DKMS构建系统重建内核模块。Linux中的某个地方有一个配置文件,用于黑名单/白名单内核模块--这对于确保正确的模块被加载非常有用。

这就是我在修复USB串行设备的驱动程序时所做的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46967066

复制
相关文章

相似问题

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