资源简介
与硬件通信的程序基本上要用到串口,虽然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-音箱参考原理图
相关资源
- UART 串口通信FPGA数据接收程序非常好
- 微机原理与接口技术综合实验报告
- 串口通信 控制tdc-gpx芯片
- UART Verilog (串口通信Verilog HDL代码)
- qt串口通信,实现发送和接收
- modbus rtu 串口通信
- pic16f877a串口通信
- 串口读数据采集仪数据demo
- 单片机与单片机之间串口通信,注释
- 基于zigbee的串口通信
- MTTTY (Multi-Threaded TTY)
- 在ROS中与其他器件使用十六进制串口
- 串口通信的界面交互性的设计与实现
- 串口通信解决数据乱码和数据丢失
- 基于VHDL的FPGA串口通信
- 串口通信编程大全.pdf
- 蓝牙(Bluetooth)设备查找、蓝牙服务
- 树莓派串口通信
- linux多串口通信,usb-can控制八个电机
- Msp430 g2553 UART与电脑串口通信例程
- 串口通信程序verilog实现
- MSP430实现串口通信的源程序代码
- RS232c串口通信在pc与单片机通信的应用
- proteus仿真的单片机串口通信,请使用
- 基于Labview的串口通讯
- 串口通信实验报告 含代码
- STM32的GPIO口模拟串口通信.rar
- 基于串口通信的上位机控制软件(l
- MSP430F5529LP 串口通信 UART 代码 CCS工程
- 使用Verilog+quartus2+ModelSim仿真UART串口通
评论
共有 条评论