Qt 5.1 使用 QSerialPort 的串行通信
Qt 5.1 Serial Comunication using QSerialPort
我正在尝试使用Qt配置与串行电位的通信,这是我在Qt中的第一个应用程序,根据许多线程,我编写了这段代码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSerialPort>
QSerialPort serial;
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
serial.open(QSerialPort::ReadWrite);
serial.setPortName("ttyACM0");
serial.setBaudRate(QSerialPort::Baud9600);
serial.setDataBits(QSerialPort::Data8);
serial.setParity(QSerialPort::NoParity);
serial.setStopBits(QSerialPort::OneStop);
serial.setFlowControl(QSerialPort::NoFlowControl);
serial.write("hello");
}
MainWindow::~MainWindow()
{
delete ui;
serial.close();
}
编译器告诉我,当我构建项目时,设备没有打开。
您是否确保
该设备可以打开?如果这是一个 *nix 系统,请尝试:
ls -l /sys/class/tty/ttyUSB* ### if USB device or
ls -l /sys/class/tty/ttyACM* ### if ACM, whatever that is
你应该得到一个指向设备目录的符号链接,至少你在 Linux 上是这样。
此外,您的代码构建良好,但是我认为它实际上并没有运行.
此外,看起来QSerialPort还有一个名为"isOpen"的方法(继承自QioDevice),如果设备已经打开,则返回一个布尔值,您可能应该在打开和关闭之前使用该布尔值以了解设备的实际状态是什么。
我已经反对使用serial.open(QIODevice::ReadWrite)
的设备并且它运行了。感谢您的帮助。
相关文章:
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 是否可以使用winusb同时与多个相同的usb设备进行通信
- 混淆了如何使用IDL与Ethovision进行通信
- C++ Boost::asio串行通信与Arduino无法写入
- 我是否需要包含隐式使用/与 WindowsAPI 通信"Windows.h"?
- 通过TCP的PvP通信问题
- C++一个线程如何正确通信其任务已完成?
- 如何将 Firebase 与基于 Linux 的客户端应用配合使用,以便与服务器进行双向消息通信
- QSerialPort 在应用程序启动之前正在使用中
- 删除功能不适用于串行通信后多个循环中的多个实例
- 网站和C++程序在同一台 Linux PC 上的通信
- 通过插槽和信号在不同线程中的两个qt对象之间进行通信
- 使用 pybind11 共享 MPI 通信器
- 进程间通信堆内存
- C++ TCP 套接字通信 - 连接按预期工作,几秒钟后失败,没有收到新数据,read() 和 recv() 块
- C++ 两台不同机器之间通过wifi进行套接字通信
- Qt 5.1 使用 QSerialPort 的串行通信
- 串行通信不通过QSerialPort (Qt)工作,但通过终端(白蚁)工作
- 奇怪的行为 QT QSerialPort 在 Windows 7 上不会更改串行通信端口的设置
- 基本通信与QSerialPort