QSerialPort 无法在 Ubuntu 上打开"/dev/ttyUSB0"
QSerialPort fails to open "/dev/ttyUSB0" on Ubuntu
我正在尝试通过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() << "Passn";
serial.close();
} else {
qDebug() << "Failn";
}
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命令添加到dialout组。因此,我可以在终端软件上与USB串行设备进行通信。
但我无法解决QSerialPort问题。有人有什么想法吗?如有任何帮助,我们将不胜感激。
提前感谢!
正如Frank所建议的,您总是可以使用errorString()获得错误诊断。有关详细信息,请参阅我们的示例。
我无法重现该问题,但根据您的评论,您的串行端口已被另一个进程使用,因此这意味着它不是QtSerialPort问题。任何其他软件都会有这个问题,例如一个新的微型通信会话。
很高兴它现在起作用了。:)
相关文章:
- 请发现它在 dev 中工作的错误,但在 hackerrank 中不起作用
- 无法在 dev-c++ 上编译程序?
- Dev c++ mingw 不再编译
- 如何在 Windows 上将bcrypt_gensalt与 /dev/urandom 一起使用?
- 我正在使用dev c ++,但收到错误(C++98'array'必须由构造函数初始化)
- dev Wx Dev C++ vs Graphics.h?
- dev如何在C++中比较二进制数
- 在linux中为c++dev配置VSCode
- DEV C++ 第 69 行 [错误] ISO "for" 范围更改了"i"的名称查找 [-允许]
- dev在试图从dev c++mingw 4.8.1中的文件读取时接收分段错误
- 我有一个C++函数,它在Dev C++中编译,但在G++中不编译
- 写入/dev/ttyS0后读取0字节
- 如何将 stderr 重定向到 /dev/null
- 如何创建C++DLL(使用DEV -C++)并在MT4脚本中使用(逐步)
- auto 关键字在 Dev c++ 中不起作用
- 从 win 7 升级到 Win 10 后,出现 Dev-C++ makefile.win 编译错误
- 如何检测 ofstream 是否正在写入 /dev/null
- 如何将 libproxy-dev 链接到现有的 cmake 项目(C++)?
- 在哪里调用主函数(dev c ++)
- QSerialPort 无法在 Ubuntu 上打开"/dev/ttyUSB0"