程序如下:
uart.h:
#ifndef UART_H
#define UART_H
#include <QObject>
#include <QTimer>
#include <QtSerialPort/QSerialPort>
class Uart : public QObject
{
Q_OBJECT
public:
explicit Uart(QObject *parent = 0);
~Uart();
void InitUart();
short roll;
short pitch;
short yaw;
short m_throttle;
float m_altitude;
short gl_Angle;
private:
QSerialPort *my_serialport;
QByteArray requestData;
unsigned char *buffer;
signals:
void changeAngle(short,short,short);
void changeThrottle(short);
void changeAltitude(float);
void changeYawGL(short);
void changeAngleToUI(short,short,short);
void isOpenUart(bool);
void IsConnectControl(int);
public slots:
void readUartSlot();
void connectUart();
void disconnectUart();
};
#endif // UART_H
uat.cpp:
#include "uart.h"
#include <QDebug>
#include <QMessageBox>
Uart::Uart(QObject *parent) :
QObject(parent)
{
roll = 0;
pitch = 0;
yaw = 0;
m_throttle = 0;
gl_Angle = 0;
my_serialport = new QSerialPort();
QString portName = "ttyUSB0";
my_serialport->setPortName(portName);
if(my_serialport->open(QIODevice::ReadOnly))
{
my_serialport->setBaudRate(115200);
my_serialport->setDataBits(QSerialPort::Data8);
my_serialport->setParity(QSerialPor

本文介绍了使用QT库在Linux下进行串口通信的实现,包括设置串口参数、读取数据以及信号槽的连接与断开。通过读取串口接收到的数据,解析并更新角度、油门和高度等信息。
最低0.47元/天 解锁文章
2471

被折叠的 条评论
为什么被折叠?



