gpt4 book ai didi

c++ - Qt 5.1 使用 QSerialPort 进行串口通信

转载 作者:行者123 更新时间:2023-11-30 05:48:29 26 4
gpt4 key购买 nike

我正在尝试使用 Qt 配置与 serial-pot 的通信,这是我在 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

你应该得到一个指向设备目录的符号链接(symbolic link),至少你在 linux 上是这样。

此外,您的代码构建良好,但我认为它实际上并没有运行

此外,QSerialPort 看起来还有一个名为“isOpen”的方法(继承自 QioDevice),如果设备已经打开,它会返回一个 bool 值,您可能应该在打开和关闭之前使用它来了解实际状态该设备是。

关于c++ - Qt 5.1 使用 QSerialPort 进行串口通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28158028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com