Linux下基于QT串口编程测试二
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
环境:
主机:Fedora12
开发软件:QT
目标板:MINI6410
实现功能:
目标板接收PC串口传过来的信息并在终端输出,输出是每次读8个字节,然后输出.
说明:
这一次采用的是开源类qextserialbase提供的串口功能,感谢原作者。以下是他的网站:
http://www.yafeilinux.com/
源代码:
widget.h:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include "posix_qextserialport.h"
#include <QTimer>
#include <QDebug>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
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区域.
分享到:
相关推荐
QT串口通信程序测试通过,可以放心使用。
Qt没有自带的串口编程类,一般我们都使用这了第三方编写的类qextserialport 已经测试,可以使用。
蓝牙模块服务多种多样,这个小demo实现了linux下建立蓝牙服务端的demo,并带了一个客户端测试。 使用时,可通过两台设备,分别作为服务端可客户端,连接时填入对方地址即可开启测试。服务端建立后,客户端可通过...
第2章 基于ARM9处理器的硬件开发平台 2.1 ARM处理器简介 2.1.1 ARM公司简介 2.1.2 ARM微处理器核 .2.2 ARM9微处理器简介 2.2.1 与ARM7处理器的比较 2.2.2 三星S3C2410X处理器详解 2.3 FS2410开发平台 第3章...
《嵌入式Linux应用程序开发标准教程(第2版)》主要分为3个部分,包括Linux基础、搭建嵌入式Linux环境和嵌入式Linux的应用开发。Linux基础部分从Linux基础、基本操作命令讲起,为Linux初学者能快速入门提供了保证。...
6.3 基于Qt技术的Qtopia157 6.3.1 Qtopia简介157 6.3.2 Qtopia的功能157 6.3.3 Qtopia编程157 实验6.2 Qtopia的移植以及编程158 综合实验五电子点菜系统165 第7章 嵌入式Linux下的通信应用167 7.1 嵌入式...
6.3 基于Qt技术的Qtopia157 6.3.1 Qtopia简介157 6.3.2 Qtopia的功能157 6.3.3 Qtopia编程157 实验6.2 Qtopia的移植以及编程158 综合实验五电子点菜系统165 第7章 嵌入式Linux下的通信应用167 7.1 嵌入式...
6.3 基于Qt技术的Qtopia157 6.3.1 Qtopia简介157 6.3.2 Qtopia的功能157 6.3.3 Qtopia编程157 实验6.2 Qtopia的移植以及编程158 综合实验五电子点菜系统165 第7章 嵌入式Linux下的通信应用167 7.1 ...
6.3 基于Qt技术的Qtopia157 6.3.1 Qtopia简介157 6.3.2 Qtopia的功能157 6.3.3 Qtopia编程157 实验6.2 Qtopia的移植以及编程158 综合实验五电子点菜系统165 第7章 嵌入式Linux下的通信应用167 7.1 嵌入式...
║2 嵌入式系统开发技术详解——基于ARM 3.1 Linux 常用工具.............................................................................................................. 28 3.1.1 Shell简介..................
以电机、数码管、串口和mini键盘的驱动设计为例,详细阐述了嵌入式linux下字符设备驱动设计中的关键技术,包括设备的设备号、设备的操作及设备的注册和卸载等。通过编写相应硬件设备的应用程序,测试设备驱动的正确...