我正在尝试通过 USB 串行电缆将微控制器与我的台式电脑连接。我的台式电脑的操作系统是 Ubuntu 13.10。USB 串行电缆为TTL-232R-3V3 (FTDI)。
这是我的源代码。运行程序时,它最终会失败。(在这种情况下,“失败”打印在控制台上。)
#include <QCoreApplication>
#include <QtSerialPort/QtSerialPort>
#include <QtSerialPort/QSerialPortInfo>
QT_USE_NAMESPACE
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// Example use QSerialPortInfo
QSerialPort serial("/dev/ttyUSB0");
if (serial.open(QIODevice::ReadWrite)){
qDebug() << "Pass\n";
serial.close();
} else {
qDebug() << "Fail\n";
}
return a.exec();
}
根据这篇文章,必须在 .pro 文件中添加以下语句。
QT += serialport
插入 USB 串行电缆后,在 Ubuntu 上识别为“/dev/ttyUSB0”。它似乎运作良好。
$dmesg | grep ttyUSB
>>[ 27.653383] usb 6-1: FTDI USB Serial Device converter now attached to ttyUSB0
$ls -la | grep ttyUSB
>> crw-rw---- 1 root dialout 188, 0 12月 14 17:30 ttyUSB0
为了避免权限问题,我的用户名通过gpasswd命令添加到拨出组。结果,我可以在终端软件上与USB串行设备进行通信。
但我无法解决 QSerialPort 问题。有没有人有任何想法?任何帮助,将不胜感激。
提前致谢!