Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QtSerialPort示例失败_C++_Windows_Qt_Serial Port_Qtserialport - Fatal编程技术网

C++ QtSerialPort示例失败

C++ QtSerialPort示例失败,c++,windows,qt,serial-port,qtserialport,C++,Windows,Qt,Serial Port,Qtserialport,我正在使用Qt5.1,当我的应用程序(在v4.8.4中使用QextSerialPort工作)无法通信时,我在…\5.1.1\Src\qtserialport\examples\serialport\terminal中尝试了该示例。这也失败了 我有一个模拟COM端口的简单USB加密狗。如果我使用RealTerm,我可以向它发送AT命令,然后返回OK 但是Qt附带的终端示例并不与之通信。我查看了一个API窥探器,得到了一个不成功的返回,WaitCommEvent和WriteFile的错误为“997:

我正在使用Qt5.1,当我的应用程序(在v4.8.4中使用QextSerialPort工作)无法通信时,我在…\5.1.1\Src\qtserialport\examples\serialport\terminal中尝试了该示例。这也失败了

我有一个模拟COM端口的简单USB加密狗。如果我使用RealTerm,我可以向它发送AT命令,然后返回OK

但是Qt附带的终端示例并不与之通信。我查看了一个API窥探器,得到了一个不成功的返回,WaitCommEvent和WriteFile的错误为“997:重叠I/O操作正在进行”

我在Windows7上运行它,我将exe和DLL复制到Windows8机器上,它也无法通信(尽管我没有在那里窥探API)


有人知道该尝试什么吗?未经修改的示例应用程序怎么会完全失败?我感到困惑。

请使用可用的QtSerialPort模块尝试Qt 5.2(或尝试从git构建QtSerialPort的最新版本)

我有一个简单的USB加密狗

什么是加密狗模型?视频/PID

…返回,错误为“997:正在进行重叠的I/O操作…”


这不是一个错误。

终端示例应该可以工作。您可以通过首先让示例工作来跟踪问题

如果这不起作用,尝试在RX和TX线路之间进行环回,这两条线路通常是9针串行端口的第2针和第3针

在完成这项工作之后,您可以更进一步,尝试使用这个示例,它更接近终端示例所使用的内容

一旦成功,您就可以意识到终端示例的错误。它可能仍然是一个QtSerialPort错误,但在这种情况下,我们需要您关于硬件环境的所有详细信息


此外,请确保在这种情况下,终端示例是否可以正常工作,例如在Unices上。

终端示例也应该适用于5.1。实际上,这是一个错误(bug),这是我们最终需要解决的问题。我认为像这样的帖子需要作为评论首先发布,因为它实际上并没有解决问题中的问题。加密狗是一个带有vid/pid的BT加密狗(由示例应用程序正确检测)403/6001的使用了MS bluetooth stack或BlueSoleil或其他软件?我相信它是FTDI驱动程序,因为这是USB串行端口(COM10)属性页上的驱动程序选项卡在驱动程序提供程序下说。它在5.1.1版本的Linux上也会失败吗?你试过git或5.2版本的csyncreader/writer吗?另外,你可以发布一个不适合你的简单应用程序吗?或者,你可以运行这个基于5.1.1版本的示例:然后,请粘贴输出。我也在考虑在Linux上试用,但是我还没有机会。我今晚回家运行Linux时会这样做。好的,当然。同时,你可以试试csyncwriter示例。让我知道这是否有效。如果不行,请从控制台粘贴输出。你需要从Windows上的stdin提供命令行示例,并将其写入端口。我认为最简单的例子是我第一次提到的,即我发现了问题!!:-)当我添加
QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
QByteArray myData=testPort.readAll()前面时,我的代码都可以运行;
然后readAll返回我所期望的结果。我想我使用的同步读取方式有点错误,或者其中有一个错误。@David:很有趣;感谢您的后续操作!我很高兴它现在可以工作了。;-)