我有一个串行转 USB 设备,支持 8Mbaud 和 12Mbaud 的速度(基于 FT232H IC)。我已经在 Windows 下使用 HTerm 对其进行了测试,工作得很好,但我不得不借助 HTerm 和破解配置来启用对我使用的速度的支持。在测试过程中,我注意到,如果波特率参数超过了它们内部设置的最大值,很多用于串行通信的应用程序都会默默地将波特率限制为 115200 或 1Mbaud(用示波器测量)。
现在我正在尝试与 Linux 机器(在我的例子中是 Debian)实现这种连接。尝试过斯蒂,即不接受非标准速度参数。屏幕似乎在内部限制了波特率,因为我没有收到任何高于 1Mbaud 的数据。
目前我的根目录上没有剩余空间来安装 Qt5,并且无法尝试 HTerm linux 分支,但是是否有其他工具能够与正常波特率范围之外的串行设备进行通信?
答案1
Linux 文档项目有一个关于串行通信的部分,第12条涵盖您遇到的问题。它基本上说 115.2k(有时 230.4k)是通常的最大速度设置,以位/秒为单位,但继续通过仅设置最大速度来描述工作循环,如果您的硬件支持更高的速度,您将得到更高的速度。这一切看起来有点陈旧和乏味。
现在有更快的串行硬件选项,例如 RS485、I2C、SPI 甚至 I2S……但它们通常是专用硬件并在短距离内进行通信。 (RS485 除外)。
我想知道你是否以错误的方式处理这个问题(使用USB)。这是一个有趣的讨论Raspberry pi 与 Arduino 通信。
喝完咖啡后编辑并阅读下面您的精彩评论。
@mosvy杜尔!是的,你完全正确,LDP 描述了设置内部 UART,而没有描述外部串行 -> USB 适配器。
@stiebrs,我希望我没有将 RS485 放入该列表中,它不是短距离。但速度和距离是成反比的。关于 ftdi 虚拟端口,是的,我也很惊讶,自从我查看它们以来,这些速度常数在过去 20 年里没有发生变化,但是我给出的第二个链接,他们发现波特率本身并不是失败的是 debian/ubuntu,而是交付率。他们还使用自己的 C 程序,不依赖于标准实用程序。很高兴听到你用 python 程序解决了这个问题。