问题标签 [qtserialport]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3521 浏览

qt - Qt5 QSerialPort 写入数据

如何在串行端口中写入数据,发送消息之间有延迟?这是我的代码:

当我调用此函数时,我的设备会收到一条错误消息。

谢谢你。

0 投票
1 回答
896 浏览

qt - 使用 PyQt 和信号在 qt5serialport.dll 中获取段错误

我目前正在努力解决我在使用 QSerialPort 并使用 Windows XP SP3、Python 3.3.3 和 PyQt5 5.1.1 发出信号时遇到的一个奇怪的段错误。

我真的很想知道这是否也发生在带有 C++ 的纯 Qt 中,但是我的 C++ 很糟糕,而且我没有设置正在运行的工具链。

最小的示例代码(抱歉,无法简化更多):

当我运行它并通过串行端口接收一个字节时,我在 qt5serialport.dll 中得到一个“访问冲突”(又名 segfault)。有时在第一次单击“开始”时会发生这种情况,有时在第二次单击“开始”后会发生。

到目前为止我观察到的一些事情:

  • 信号需要有一个 bool/int 作为第一个参数,以及其他一些参数——否则它似乎不会触发。

  • 当我在端口关闭( )之前发出信号时self.ser.close(),它似乎没有触发。

  • 在 Linux 上(Archlinux、Python 3.3.2、PyQt 5.1.1)我无法重现这一点,但在第二次启动后,我总是得到QSocketNotifier: Invalid socket specified.

是什么赋予了?难道我做错了什么?或者这是某个地方的 [Py]Qt 中的错误?

0 投票
1 回答
143 浏览

qt4 - QtSerialport 连接不一致问题

我过去曾将这个库用于 Qt4,但我目前正尝试在涉及更多传入数据的项目中使用它。当我尝试在我的程序中连接到正确的 COM 端口时,它显示没有收到任何数据包。当我使用另一个终端程序时,它会显示不断的数据流。经过几次尝试连接到 COM 端口后,我的程序终于连接并正常工作。我需要我的程序能够在收到命令时始终连接到 COM 端口。如果有人对我的代码可能有什么问题有任何想法,我将非常感谢您的帮助。

然后我读到:

ETC...

0 投票
1 回答
1694 浏览

c++ - Qt 3rd 方库静态链接 (QtSerialPort)

原来静态链接有效,但仅适用于 Qt 库。我的第 3 方库 QtSerialPort 没有静态链接。经过一番研究,我发现我要么必须静态构建这个库,要么必须直接链接到 .pro 文件中的 .pri 文件。

我不知道该怎么做,因为 QtSerialPort 似乎不是为静态链接而设计的。

.pri方法我实在看不懂,已经在这两个链接中模糊描述了:http: //qt-project.org/forums/viewthread/15223 http://www.qtcentre.org/archive/index.php /t-54505.html

有没有人对如何使这些方法中的任何一种起作用有任何建议?或者可能是另一种方法?

此外,如果有人能给我任何建议,MSVCP100.dll 不会静态链接。

==================================================== =================================

我试图让 Qt 静态链接库,以便我可以制作一个独立的应用程序。我遵循了各种关于如何静态构建 Qt 然后构建静态应用程序的教程,但我运气不佳。我相信我已经成功地使用静态链接构建了 Qt,因为应用程序的大小从 79KB 增长到了 7+MB,但我仍然收到错误说 QtCore4.dll 和 QtSerialPort.dll 丢失。另外,我在使用这个静态配置时遇到的另一个问题,这不是太严重,当我关闭我的程序时,Windows 认为它​​已经崩溃并给我一个窗口说 MyProgram.exe 已停止工作......

我在使用带有 Qt 4.8.5 的 MSVC 2010 的 Windows 机器上,并且正在使用第三方库 QtSerialPort。

根据我一直在阅读的指南,我所做的是:

下载并解压 qt-everywhere-opensource-src-4.8.5.zip 打开 /mkspec/mwin32-msvc2010/qmake.conf 并将以下行更改为

然后我打开 MSVC2010 命令提示符并 cd 到这个 . 然后我输入命令

完成后,我打开我的项目并添加

到 .pro 文件。在 QtCreator 中,我进入 Projects,Manage Kits,然后进入 Qt Versions 并浏览到我刚刚生成的 qMake。我用这个版本的 qMake 添加了一个新工具包。然后我清理所有并切换到这个新工具包并从 QtCreator 运行 qmake。然后我使用 msvc2010 命令提示符转到生成文件的目录,然后

这会生成一个相当大的 .exe,但就像我说的,它仍然取决于几个 .dll。

0 投票
1 回答
5475 浏览

c++ - QSerialPort 无法在 Ubuntu 上打开“/dev/ttyUSB0”

我正在尝试通过 USB 串行电缆将微控制器与我的台式电脑连接。我的台式电脑的操作系统是 Ubuntu 13.10。USB 串行电缆为TTL-232R-3V3 (FTDI)。

这是我的源代码。运行程序时,它最终会失败。(在这种情况下,“失败”打印在控制台上。)

根据这篇文章,必须在 .pro 文件中添加以下语句。

插入 USB 串行电缆后,在 Ubuntu 上识别为“/dev/ttyUSB0”。它似乎运作良好。

为了避免权限问题,我的用户名通过gpasswd命令添加到拨出组。结果,我可以在终端软件上与USB串行设备进行通信。

但我无法解决 QSerialPort 问题。有没有人有任何想法?任何帮助,将不胜感激。

提前致谢!

0 投票
2 回答
3756 浏览

c++ - QSerialPort::readLine 在 MS Windows 上无法按预期工作

我正在尝试通过 USB 串行电缆将微控制器与我的台式 PC 连接。我台式电脑的操作系统是 Windows 8.1,USB 串口线是 TTL-232R-3V3。(FTDI)(Qt 版本:5.2.0 beta1,QtCreator 版本:3.0,编译器:MSVC2012)

现在我正在尝试读/写环回测试,这就是 USB 串行电缆的 RX/TX 引脚相互连接的原因。

这是我的代码。

当程序开始运行时,结果与我预期的不同。只能接收发送数据的第一行。因此,“读取数据:#1 发送数据行”打印在控制台上。但是将永远不会收到其余发送的数据。有谁知道为什么?

任何帮助,将不胜感激。提前致谢。

编辑:我根据 Papp 的评论修改了我的代码。然后它按我的预期工作。已收到所有发送的消息。

这是否意味着我误解了 readLine() 或 canReadLine() 的用法?

第二次编辑:以下代码也适用于我。

0 投票
2 回答
1350 浏览

c++ - QtSerialPort 示例失败

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

我有一个模拟 COM 端口的简单 USB 加密狗。如果我使用 RealTerm,我可以向它发送 AT 命令并恢复正常。

但是Qt自带的终端例子并不能与之通信。我查看了一个 API 窥探器,我得到了一个不成功的返回,错误为 WaitCommEvent 和 WriteFile 的“997:Overlapped I/O operation is in progress”。

我在 Windows 7 上运行它,并将 exe 和 DLL 复制到 Windows 8 机器上,但它也无法通信(尽管我没有在那里进行 API 监听)。

有人有什么想法可以尝试吗?未经修改的示例应用程序怎么会失败?我很困惑。

0 投票
2 回答
3353 浏览

c++ - Qt在串口上发送完整字节

我有这个使用 QtSerialPort 的简单代码:

我的连载结果是 {2, 50}。我认为我可以发送的最大数字是 128(字符从 -128 变为 128)。发送号码从0到255的方式在哪里?我尝试使用 unsigned char 但方法“write”不适用于它。QByteArray 也会出现同样的问题。

谢谢你们。

0 投票
2 回答
960 浏览

c++ - 串口类Qt C++的继承

我想向串行端口类添加一些功能,因此想继承它并添加一些功能。但是,我遇到了问题。我将类放在这样的头文件中:

我正在修改终端示例:http: //qt-project.org/doc/qt-5.1/qtserialport/terminal-mainwindow-cpp.html

这里在 MainWindow 构造函数中创建了一个串行端口对象

但是,在声明 mySerialport 并尝试之后

除了无数关于构造函数的错误消息外,我什么也没得到。

问题:
1. 错误可能是什么?我想这是基本的。2. 为什么串口会继承MainWindow?调用 MainWindow 析构函数时串行端口将被删除是 Qt 的事情吗?

0 投票
2 回答
3388 浏览

c++ - qt 5.2 串口写入问题与 windows 7

我们在硬件中使用 FTDI 串行端口芯片。现在我们在 Linux 中有了工作代码,我们移到了 Windows 7。我们遇到了一些奇怪的问题。

问题:我们不能在不运行其他控制台应用程序的情况下将数据写入串行端口:

所以它只是循环读取所有内容。硬件不发送任何东西,所以读取只是无限循环。关闭并运行我们的写入程序后,它可以正常运行。

运行 read 后一切正常,但没有 read all 就不行了。我们做错了什么?谢谢。