1

我正在尝试在 Qt 中使用 QSerialDevice 来连接到我的串口。我之前也尝试过 QextSerialPort(它适用于 Windows Vista,但不幸的是不适用于 Windows XP ..),但我需要一个支持 XP、Vista 和 Win7 的 API ......我构建了库并以这种方式配置它:

CONFIG      += dll
CONFIG      += debug

我确实使用了 SVN (0.2.0 - 2010-04-05) 的当前版本和 0.2.0 zip 包。
在构建库之后,我确实将它复制到了我的 Qt Libdir (C:\Qt\2009.05\qt\lib) 以及 C:\Windows\system32。现在我尝试链接到我的项目文件中的库:

LIBS += -lqserialdevice

我导入所需的标头(abstractserial.h)并像这样使用我自己的 AbstractSerial:

// Initialize
this->serialPort->setDeviceName("COM1");
if (!this->serialPort->open(QIODevice::ReadWrite | QIODevice::Unbuffered))
  qWarning() << "Error" << this->serialPort->errorString();

// Configure SerialPort
this->serialPort->setBaudRate(AbstractSerial::BaudRate4800);
this->serialPort->setDataBits(AbstractSerial::DataBits8);
this->serialPort->setFlowControl(AbstractSerial::FlowControlOff);
this->serialPort->setParity(AbstractSerial::ParityNone);
this->serialPort->setStopBits(AbstractSerial::StopBits1);

问题是,如果我运行我的应用程序,它会立即崩溃,退出代码为 -1073741515(应用程序无法正确初始化)。这与我在 Windows XP 下使用 QextSerialPort 时遇到的错误相同(它适用于 Windows Vista)。
如果我使用发布配置和我的程序构建 QSerialDevice 库,它会立即崩溃,但退出代码为 -1073741819

有人可以帮助我使用这个程序或让串行端口与 Qt 一起使用的另一种解决方案(可能是另一个 API 或其他东西?)否则我必须使用 Windows API 函数,这意味着我的程序将无法与 UNIX 系统一起使用。 .
如果你对 WinXP SP3 下 QextSerialPort 的问题有解决方案,也欢迎他们;)

最好的问候,
托拜厄斯

4

1 回答 1

0

托比亚斯,

try use from SVN: svn checkout svn://scm.fireforge.net/svnroot/qserialdevice

于 2010-04-24T11:22:01.810 回答