博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux下基于QT串口编程测试二
阅读量:3947 次
发布时间:2019-05-24

本文共 1978 字,大约阅读时间需要 6 分钟。

               

Linux下基于QT串口编程测试二

本文博客链接:,作者:jdh,转载请注明.

环境:

主机:Fedora12

开发软件:QT

目标板:MINI6410

实现功能:

目标板接收PC串口传过来的信息并在终端输出,输出是每次读8个字节,然后输出.

说明:

这一次采用的是开源类qextserialbase提供的串口功能,感谢原作者。以下是他的网站:

源代码:

widget.h:

#ifndef WIDGET_H#define WIDGET_H#include 
#include "posix_qextserialport.h"#include
#include
namespace Ui {    class Widget;}class Widget : public QWidget{    Q_OBJECTpublic:    explicit Widget(QWidget *parent = 0);    ~Widget();private:    Ui::Widget *ui;    Posix_QextSerialPort *myCom;    QTimer *readTimer;private slots:    void slot_read_com();};#endif // WIDGET_H
widget.c:

#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) :    QWidget(parent),    ui(new Ui::Widget){    ui->setupUi(this);    myCom = new Posix_QextSerialPort("/dev/ttySAC1",QextSerialBase::Polling);    //定义串口对象,指定串口名和查询模式,这里使用Polling    myCom ->open(QIODevice::ReadWrite);    //以读写方式打开串口    myCom->setBaudRate(BAUD115200);    //波特率设置,我们设置为115200    myCom->setDataBits(DATA_8);    //数据位设置,我们设置为8位数据位    myCom->setParity(PAR_NONE);    //奇偶校验设置,我们设置为无校验    myCom->setStopBits(STOP_1);    //停止位设置,我们设置为1位停止位    myCom->setFlowControl(FLOW_OFF);    //数据流控制设置,我们设置为无数据流控制    myCom->setTimeout(10);    //延时设置,我们设置为延时10ms    readTimer = new QTimer(this);    readTimer->start(100);    //设置延时为100ms    connect(readTimer,SIGNAL(timeout()),this,SLOT(slot_read_com()));    //信号和槽函数关联,延时一段时间,进行读串口操作}void Widget::slot_read_com(){    char str[10];    while (myCom->bytesAvailable() > 0)    {        qDebug() << "receive" << myCom->bytesAvailable();        //QByteArray temp = myCom->readAll();        QByteArray temp;        int len = myCom->readData(str,8);        temp.append(str,len);        qDebug() << "receiver len = " << len << "nei rong:" << temp;    }}Widget::~Widget(){    delete ui;}
注意:本文中读串口采用的是readData()函数,这个函数在qextserialbase中是受保护的虚类,要使用需要把它从posix_qextserialport.h的protected区域移到public区域.

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!

你可能感兴趣的文章
linux shell 中数组的定义和for循环遍历的方法
查看>>
求1!+2!+3!....+20!(java代码)
查看>>
VMware安装Ubuntu系统无法选择语言
查看>>
QT5.12安装
查看>>
Git/Github初步使用记录
查看>>
QT 开发问题合集
查看>>
Github使用问题合集
查看>>
QT多线程服务器
查看>>
Ubuntu 18.04.2 ulimit配置
查看>>
Ubuntu Mysql 安装与配置
查看>>
QT5.12 Mysql驱动未能加载问题
查看>>
现场直击|SequoiaDB@SIGMOD 2021:关注数据库的根科技存储技术
查看>>
赋能政企智慧办公,巨杉数据库与致远互联完成产品互认证
查看>>
SequoiaDB湖仓一体架构亮相 ACM SIGMOD 2021
查看>>
信通院发布第十二批大数据产品能力评测结果,巨杉数据库两款产品通过
查看>>
巨杉数据库荣获2020年度河南省科学技术进步奖
查看>>
湖仓一体提升管理效率 培育数据沃土
查看>>
报名启动!巨杉数据库 2021 湖仓一体技术大赛带你进入分布式技术的星辰大海
查看>>
python的collections
查看>>
J2ME程序开发新手入门九大要点
查看>>