QSerialPort 和虚拟端口仿真器

Posted

技术标签:

【中文标题】QSerialPort 和虚拟端口仿真器【英文标题】:QSerialPort and Virtual Port Emulator 【发布时间】:2014-04-17 23:56:58 【问题描述】:

我的基于 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 代码。 【参考方案1】:

@user3148625,

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

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

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

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

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

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

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

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

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

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

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

【讨论】:

以上是关于QSerialPort 和虚拟端口仿真器的主要内容,如果未能解决你的问题,请参考以下文章

从端口读取时缺少 qserialport 数据,但返回 9 个可用字节

关闭正在运行的 QSerialPort 的电源是不是有问题?

在应用程序先前由“root”运行后,QSerialPort 无法打开 tty [重复]

Qt入门教程硬件编程QSerialPort串口对象

Qt入门教程硬件编程QSerialPort串口对象

Windows 7 上的奇怪行为 QT QSerialPort 不会更改串行 com 端口的设置