• 大小: 94KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: 其他
  • 标签: QT  串口调试  

资源简介

开发环境: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

评论

共有 条评论