【问题标题】:QSerialPort and Virtual Port EmulatorQSerialPort 和虚拟端口仿真器
【发布时间】:2024-06-22 13:05:02
【问题描述】:

我的基于 QSerialPort 类的程序有问题。我已经为我的蓝牙模块 HC-06(它作为串行端口连接到 pc)创建了接收器应用程序,我的应用程序已经从这个模块接收到数据,没有任何问题。现在我刚刚编写了另一个应该模拟发射器的应用程序。然后我尝试使用程序 Free Virtual Serial Port 在两个虚拟串口之间建立一个桥梁。之后出现了一些问题。即使我通过 tranmiter 应用程序将数据写入桥接串行端口,接收器应用程序也不会发出 readyRead() 信号。当我断开接收器并通过 Hercules 终端连接到同一个端口时,所有缓冲的数据都会显示出来。

我做错了什么?有没有办法让它工作? 我在 windows 7 64bit 上使用基于 qt 5.1.1 的 qt creator 2.8.1。

【问题讨论】:

  • 你能试试 git/stable 的最新版本吗?我们最近进行了一些与虚拟端口相关的修复。
  • 你的意思是 - 试试lates 'qt'?
  • 我的意思是来自 git 的最新 QtSerialPort 代码。

标签: c++ qt qt5 virtual-serial-port qtserial


【解决方案1】:

@user3148625,

如果你谈论这个软件:http://www.hhdsoftware.com/free-virtual-serial-ports

那么我不建议使用它,因为这个软件会出现错误(恕我直言,坏软件)。

例如,任何终端程序试图创建“桥”并进一步打开端口,都会失败。

例如我使用的是 Windows 8x32 和一组这个终端程序:

  1. 白蚁:http://www.compuphase.com/software_termite.htm

这个程序在尝试打开端口时崩溃了

  1. Tera 术语专业版:http://en.sourceforge.jp/projects/ttssh2/releases/

在尝试打开端口后,该程序开始接收垃圾流并崩溃。

我敢肯定,其他程序也会运行。 IE。问题不在 QtSerialPort 中,而是在“免费虚拟串行端口”软件的错误驱动程序中。这是一个古老的已知问题。

因此我建议使用 com0com 模拟器:http://sourceforge.net/projects/com0com/

或任何其他软件(例如 Eltima Software 虚拟端口的试用版)。

【讨论】: