资源简介
与硬件通信的程序基本上要用到串口,虽然qt5以后集成了串口通信类,但是个人觉得那个串口通信类有点问题,在linux上表现很好,windows上大数据会有怪怪的问题出现,而且只能在qt5以上的版本才能用,无奈大部分的嵌入式linux上还停留在4.7.1到4.8.5左右的版本,所以本人一直喜欢用第三方的串口通信类做处理。
程序调试中经常需要串口调试,甚至还需要模拟设备数据回复,甚至串口转网络出去,特意将这些常用功能都做到一个串口调试助手中去。
基本功能:
1:支持16进制数据发送与接收。
2:支持windows下COM9以上的串口通信。
3:实时显示收发数据字节大小以及串口状态。
4:支持任意qt版本,亲测4.7.0 4.8.5 4.8.7 5.4.1 5.7.0 5.8.0。
5:支持串口转网络数据收发。
高级功能:
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 “app.h“
#include “myhelper.h“
QString App::PortName = “COM1“;
int App::BaudRate = 9600;
int App::DataBit = 8;
QString App::Parity = “无“;
double App::StopBit = 1;
bool App::HexSend = false;
bool App::HexReceive = false;
bool App::Debug = false;
bool App::AutoClear = false;
bool App::AutoSend = false;
int App::SendInterval = 1000;
bool App::AutoSave = false;
int App::SaveInterval = 5000;
QString App::SendFileName = “send.txt“;
QString App::DeviceFileName = “device.txt“;
QString App::Mode = “Tcp_Client“;
QString App::ServerIP = “127.0.0.1“;
int App::ServerPort = 6000;
int App::ListenPort = 6000;
int App::SleepTime = 100;
bool App::AutoConnect = true;
void App::ReadConfig()
{
if (!CheckConfig()) {
return;
}
QString fileName = QString(“%1/%2_Config.ini“).arg(AppPath).arg(AppName);
QSettings set(fileName QSettings::IniFormat);
set.beginGroup(“ComConfig“);
App::PortName = set.value(“PortName“).toString();
App::BaudRate = set.value(“BaudRate“).toInt();
App::DataBit = set.value(“DataBit“).toInt();
App::Parity = set.value(“Parity“).toString();
App::StopBit = set.value(“StopBit“).toInt();
App::HexSend = set.value(“HexSend“).toBool();
App::HexReceive = set.value(“HexReceive“).toBool();
App::Debug = set.value(“Debug“).toBool();
App::AutoClear = set.value(“AutoClear“).toBool();
App::AutoSend = set.value(“AutoSend“).toBool();
App::SendInterval = set.value(“SendInterval“).toInt();
App::AutoSave = set.value(“AutoSave“).toBool();
App::SaveInterval = set.value(“SaveInterval“).toInt();
App::SendFileName = set.value(“SendFileName“).toString();
App::DeviceFileName = set.value(“DeviceFileName“).toString();
set.endGroup();
set.beginGroup(“NetConfig“);
App::Mode = set.value(“Mode“).toString();
App::ServerIP = set.value(“ServerIP“).toString();
App::ServerPort = set.value(“ServerPort“).toInt();
App::ListenPort = set.value(“ListenPort“).toInt();
App::SleepTime = set.value(“SleepTime“).toInt();
App::AutoConnect = set.value(“AutoConnect“).toBool();
set.endGroup();
}
void App::WriteConfig()
{
QString fileName = QString(“%1/%2_Config.ini“).arg(AppPath).arg(AppName);
QSettings set(fileName QSettings::IniFormat);
set.beginGroup(“ComConfig“);
set.setValue(“PortName“ App::PortName);
set.setValue(“BaudRate“ App::BaudRate);
set.setValue(“DataBit“ App::DataBit);
set.setValue(“Parity“ App::Parity);
set.setValue(“StopBit“ App::StopBit);
set.setValue(“HexSend“ App::HexSend);
set.setValue(“HexReceive“ App::HexReceive);
set.setValue(“Debug“ App::Debug);
set.setValue(“AutoClear“ App::AutoClear);
set.setValue(“AutoSend“ App::AutoSend);
set.setValue(“SendInterval“ App::SendInterval);
set.setValue(“AutoSave“ App::AutoSave);
set.setValue(“SaveInterval“ App::SaveInterval);
se
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-11-26 17:06 com\
文件 5380 2016-11-26 16:39 com\app.cpp
文件 1773 2016-11-26 16:39 com\app.h
文件 818 2016-11-26 16:06 com\com.pro
目录 0 2016-09-29 21:34 com\file\
文件 9682 2015-10-24 19:26 com\file\device.txt
文件 484 2013-07-25 21:20 com\file\send.txt
文件 16866 2016-11-26 16:59 com\frmcomtool.cpp
文件 2300 2016-11-26 16:24 com\frmcomtool.h
文件 14815 2016-11-26 16:49 com\frmcomtool.ui
文件 283 2016-11-26 16:06 com\main.cpp
文件 92854 2013-08-01 16:24 com\main.ico
文件 92 2016-09-19 13:42 com\main.qrc
文件 37 2013-04-18 10:27 com\main.rc
文件 19126 2016-09-27 08:21 com\myhelper.h
目录 0 2016-09-30 10:11 com\qextserialport\
文件 31472 2016-07-31 15:57 com\qextserialport\qextserialport.cpp
文件 6927 2016-07-31 15:57 com\qextserialport\qextserialport.h
文件 257 2016-09-26 21:00 com\qextserialport\qextserialport.pri
文件 2641 2016-07-31 15:57 com\qextserialport\qextserialport_global.h
文件 6365 2016-07-31 15:57 com\qextserialport\qextserialport_p.h
文件 13534 2016-07-31 15:57 com\qextserialport\qextserialport_unix.cpp
文件 13377 2016-07-31 15:57 com\qextserialport\qextserialport_win.cpp
文件 495 2016-01-25 11:02 com\qextserialport\readme.txt
文件 908 2016-11-26 16:54 com\readme.txt
- 上一篇:1024QAM调制解调系统的FPGA实现
- 下一篇:AC6928B-音箱参考原理图
相关资源
- 易语言OTG串口通信
- DELPHI与西门子200PLC的串口通信实例
- 《Visual Basic 串口通信与测控应用技术
- MFC串口通信
- 基于STM32的深海钻机甲板控制系统
- 4_USART串口通信(空闲中断+DMA.zip
- 三菱PLC串口通信调试软件.rar
- VC++ RS232 RS485串口通信源代码_
- 51串口通信程序+仿真
- Visual Basic串口通信与测控应用技术实
- Visual Basic串口通信工程开发导航.(配
- Visual Basic.NET自动化系统监控.(范逸之
- Visual Basic串口通信与测控应用技术实
- Visual Basic串口通信与测控应用技术实
- 081_《Delphi串口通信编程》(4/4)
- LabView虚拟仪器数据采集与串口通信测
- 串口通信并快速绘图
- STM32F103C8T6与MQTT通信的源码
- STM8S103系列IO模拟串口通信实现真正串
- STM32通过串口实现双机通信,达到数据
- STM32通过串口实现双机通信,实现数据
- 基于stm32的上位机与下位机的通信
- 控制台串口通信程序
- qt实现串口通信
- vc控制Arduino,实现串口通信
- STM32F103RCT6单片机在串口屏上打印正弦
- 基于nodejs实现的串口通信
- 使用MSP432-ESP8266实现小车红外测距和数
- HT32F52352串口通信
- STM32之间的串口通信
评论
共有 条评论