资源简介
开发环境:WIN7+QT4.7+QT CREATOR2.8+MINGW
已编译通过测试平台:XP、Win7、ubuntu、tiny210
技术实现:通过第三方串口通信类,解析协议并作出处理
基本功能:
1:支持16进制数据发送与接收。
2:支持windows下COM9以上的串口通信。
3:自动加载对应操作系统串口号。
4:实时显示收发数据字节大小以及串口状态。
高级功能:
1:可自由管理需要发送的数据,每次只要从下拉框中选择数据即可,无需重新输入数据。
2:可模拟设备回复数据,需要在主界面开启模拟设备回复数据。当接收到设置好的指令时,立即回复设置的回复指令。例如指定收到0x16 0x00 0xFF 0x01需要回复0x16 0x00 0xFE 0x01,则只需要在SendData.txt中添加一条数据16 00 FF 01:16 00 FE 01即可。
3:可定时发送数据和保存数据到文本文件:,默认间隔5秒钟,可更改间隔时间。
4:在不断接收到大量数据时,可以暂停显示数据来查看具体数据,后台依然接收数据但不处理,无需关闭串口来查看已接收到的数据。
5:每次收到的数据都是完整的一条数据,而不是脱节的,做了延时处理。
6:一套源码随处编译,无需更改串口通信类,已在XP/WIN7/UBUNTU/ARMLINUX系统下成功编译并运行。
代码片段和文件信息
#include “frmmain.h“
#include “ui_frmmain.h“
#include “myhelper.h“
frmMain::frmMain(QWidget *parent) :
QWidget(parent)
ui(new Ui::frmMain)
{
ui->setupUi(this);
myHelper::FormInCenter(this);
this->InitForm();
}
frmMain::~frmMain()
{
delete ui;
}
//监听回车键
bool frmMain::eventFilter(Qobject *obj QEvent *event)
{
if (obj==ui->txtSend)
{
if (event->type()==QEvent::KeyPress)
{
QKeyEvent *keyEvent=static_cast(event);
if (keyEvent->key()==Qt::Key_Return || keyEvent->key()==Qt::Key_Enter)
{
WriteMyCom();
return true;
}
}
}
return Qobject::eventFilter(objevent);
}
void frmMain::InitForm()
{
ReceiveCount=0;
SendCount=0;
IsShow=true;
IsAutoClear=false;
IsHexSend=true;
IsHexReceive=true;
IsDebug=false;
QStringList comList;//串口号
QStringList baudList;//波特率
QStringList parityList;//校验位
QStringList dataBitsList;//数据位
QStringList stopBitsList;//停止位
#ifdef Q_OS_WIN//如果是windows系统
comList<<“COM1“<<“COM2“<<“COM3“<<“COM4“<<“COM5“<<“COM6“
<<“COM7“<<“COM8“<<“COM9“<<“COM10“<<“COM11“<<“COM12“
<<“COM13“<<“COM14“<<“COM15“;
#else//如果是unix或者其他系统
comList<<“ttyUSB0“<<“ttyUSB1“<<“ttyUSB2“<<“ttyUSB3“<<“ttyUSB4“<<“ttyUSB5“
<<“ttyS0“<<“ttyS1“<<“ttyS2“<<“ttyS3“<<“ttyS4“<<“ttyS5“<<“ttyS6“
<<“ttyS7“<<“ttyS8“<<“ttyS9“;
#endif
ui->cboxPortName->addItems(comList);
ui->cboxPortName->setCurrentIndex(0);
baudList<<“50“<<“75“<<“100“<<“134“<<“150“<<“200“<<“300“
<<“600“<<“1200“<<“1800“<<“2400“<<“4800“<<“9600“
<<“14400“<<“19200“<<“38400“<<“56000“<<“57600“
<<“76800“<<“115200“<<“128000“<<“256000“;
ui->cboxBaudRate->addItems(baudList);
ui->cboxBaudRate->setCurrentIndex(12);
parityList<<“无“<<“奇“<<“偶“;
#ifdef Q_OS_WIN//如果是windows系统
parityList<<“标志“;
#endif
parityList<<“空格“;
ui->cboxParity->addItems(parityList);
ui->cboxParity->setCurrentIndex(0);
dataBitsList<<“5“<<“6“<<“7“<<“8“;
ui->cboxDataBit->addItems(dataBitsList);
ui->cboxDataBit->setCurrentIndex(3);
stopBitsList<<“1“;
#ifdef Q_OS_WIN//如果是windows系统
stopBitsList<<“1.5“;
#endif
stopBitsList<<“2“;
ui->cboxStopBit->addItems(stopBitsList);
ui->cboxStopBit->setCurrentIndex(0);
//读取数据(采用定时器读取数据,不采用事件,方便移植到linux)
myReadTimer=new QTimer(this);
myReadTimer->setInterval(300);
connect(myReadTimerSIGNAL(timeout())thisSLOT(ReadMyCom()));
//发送数据
mySendTimer=new QTimer(this);
mySendTimer->setInterval(5000);
connect(mySendTimerSIGNAL(timeout())thisSLOT(WriteMyCom()));
//保存数据
mySaveTimer=new QTimer(this);
mySaveTimer->setInterval(5000);
connect(mySaveTimerSIGNAL(timeout())thisSLOT(SaveMyCom()));
//显示日期时间
my
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-12-12 20:13 mySerialPortTools\
文件 484 2013-07-25 21:20 mySerialPortTools\ConfigData.txt
文件 13456 2013-12-17 11:00 mySerialPortTools\frmmain.cpp
文件 2146 2013-12-17 11:00 mySerialPortTools\frmmain.h
文件 18564 2013-12-17 11:02 mySerialPortTools\frmmain.ui
文件 461 2013-12-17 16:09 mySerialPortTools\main.cpp
文件 92854 2013-08-01 16:24 mySerialPortTools\main.ico
文件 7929 2013-07-22 20:41 mySerialPortTools\main.png
文件 120 2013-12-12 20:15 mySerialPortTools\main.qrc
文件 37 2013-04-18 10:27 mySerialPortTools\main.rc
文件 11800 2013-12-16 15:41 mySerialPortTools\myhelper.h
文件 719 2013-12-17 14:18 mySerialPortTools\mySerialPortTools.pro
文件 13375 2013-12-17 16:10 mySerialPortTools\mySerialPortTools.pro.user
文件 32622 2013-10-15 10:29 mySerialPortTools\qextserialport.cpp
文件 7241 2013-12-17 08:57 mySerialPortTools\qextserialport.h
文件 2641 2013-10-15 10:29 mySerialPortTools\qextserialport_global.h
文件 7131 2013-10-15 10:29 mySerialPortTools\qextserialport_p.h
文件 15106 2013-10-15 10:29 mySerialPortTools\qextserialport_unix.cpp
文件 14871 2013-10-15 10:29 mySerialPortTools\qextserialport_win.cpp
文件 117337 2010-09-13 14:02 mySerialPortTools\qt_zh_CN.qm
文件 889 2013-12-17 12:19 mySerialPortTools\readme.txt
文件 234 2013-09-17 17:38 mySerialPortTools\SendData.txt
- 上一篇:Qt编写守护进程
- 下一篇:二值化图像轮廓及链码直方图
相关资源
- Qt编写守护进程
- qt写的一个动感界面
- 自己开发串口调试助手
- qt5串口程序
- QT获取天气程序
- myElectronicDictionary.rar
- Delaunay三角剖分
- vicsek模型的Qt实现
- 摄像头串口调试助手
- QT4实现的给予QFTP类的FTP客户端程序
- QT进制间的转换,可供新手学习
- 串口调试助手V2.1,ModbusV1,BitBoy
- Qt实现的连连看游戏源码
- arm板上实现usb摄像头采集及显示(q
- QT闹钟alarm
- qt gps 定位系统源代码
- QT 基于mainwindow添加一个文件菜单
- 简单环形条格进度条
- qtjambi-eclipse-integration-4.5.2_01
- 基于TCP的网络聊天程序
- linux qt4.7 v4l2 YUV(YUYV) mmap 显示视频
- 基于QT的局域网聊天系统215855
- qt入门程序——读取txt文件
- 一个简单的 QT5编写的 串口工具代码
- 一个简单QT5编写的录音机代码
- Qt绘图实现
- 嵌入式Linux系统设计QT计算器
- 串口调试精灵 V1.023
- qt记事本(含详细解释)
- qt 实现数据库操作和显示
评论
共有 条评论