-
2021-02-12 14:49:24
【实例简介】简单的串口调试助手
【实例截图】
【核心代码】import gnu.io.CommPortIdentifier;
import gnu.io.NoSuchPortException;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import gnu.io.UnsupportedCommOperationException;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.TooManyListenersException;
public class Comm implements SerialPortEventListener, Runnable {
private InputStream is = null;
private OutputStream os =null;
private byte[] chars = new byte[64];
private SerialPort port = null;
public ArrayList listPortChoices(){
ArrayList list = new ArrayList();
CommPortIdentifier portId;
Enumeration en = CommPortIdentifier.getPortIdentifiers();
while (en.hasMoreElements()) {
portId = (CommPortIdentifier)en.nextElement();
if(portId.getPortType() == CommPortIdentifier.PORT_SERIAL){
list.add(portId.getName());
}
}
return list;
}
public boolean openPort(String portName) throws TooManyListenersException{
boolean bl = false;
try {
CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier(portName);//获得串口管理对象
port = (SerialPort) portId.open(portName,3000);//打开并获得串口对象
port.setSerialPortParams(9600,8,1,0);//配置串口
is = port.getInputStream();//获得串口输入流
os = port.getOutputStream();//获得串口输出流
bl = true;
} catch (NoSuchPortException e) {
e.printStackTrace();
} catch (PortInUseException e) {
e.printStackTrace();
System.out.println("该串口已被其他程序占用");
} catch (UnsupportedCommOperationException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return bl;
}
public boolean checkPort(){
if(port == null){
return true;
}else{
return false;
}
}
public void closePort(){
if (port != null) {
try {
os.close();
is.close();
} catch (IOException e) {
System.err.println(e);
}
}
port.removeEventListener();
port.close();
port = null;
}
public void write(byte[] out,int len){
try{
for(int i=0;i
os.write(out[i]);
os.flush();
}
return;
}catch(IOException e1){
System.out.println(e1);
return;
}catch(ArrayIndexOutOfBoundsException e2){
System.out.println(e2);
}
}
public void Read() throws TooManyListenersException{
try{
is = new BufferedInputStream(port.getInputStream());
}catch(IOException e){
throw new RuntimeException();
}
try{
port.addEventListener(this);
}catch(TooManyListenersException e){
throw new RuntimeException(e.getMessage());
}
port.notifyOnDataAvailable(true);
if(true){
Thread thread = new Thread(this);
thread.start();
}
}
@Override
public void serialEvent(SerialPortEvent event) {
// TODO Auto-generated method stub
switch (event.getEventType())
{
case SerialPortEvent.BI:/*Break interrupt,通讯中断*/
case SerialPortEvent.OE:/*Overrun error,溢位错误*/
case SerialPortEvent.FE:/*Framing error,传帧错误*/
case SerialPortEvent.PE:/*Parity error,校验错误*/
case SerialPortEvent.CD:/*Carrier detect,载波检测*/
case SerialPortEvent.CTS:/*Clear to send,清除发送*/
case SerialPortEvent.DSR:/*Data set ready,数据设备就绪*/
case SerialPortEvent.RI:/*Ring indicator,响铃指示*/
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:/*Output buffer is empty,输出缓冲区清空*/
break;
case SerialPortEvent.DATA_AVAILABLE:
byte[] readbuffer = new byte[1024];
String readstr = null;
String s2 = null;
try{
while(is.available()>0){
is.read(readbuffer);
readstr = new String(readbuffer).trim();
}
s2 = new String(readbuffer).trim();
}catch(IOException e){
}
}
}
@Override
public void run() {
// TODO Auto-generated method stub
String temp = null;
int len = 0;
try {
len = is.read(chars);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(true){
if(checkPort()){
while(len!=-1){
temp = new String(chars,0,len);
System.out.println(temp);
}
}else{
}
}
}
}
更多相关内容 -
串口工具:串口调试助手+清除Com占用工具(已删除但还显示使用中的)
2018-08-06 15:17:57串口工具,包括串口调试助手和清除COM占用工具(虚拟COM已删除但还显示使用中的),一键清除,比较方便 -
闪电侠串口网络调试助手 Myth 1.0.2.exe
2020-05-16 21:10:13嵌入式开发工程师必备的串口网络调试助手 ●本软件主要功能如下: 1、串口,TCP客户端/服务端,UDP客户端/服务端通讯调试 2、支持在发送数据包尾部指定位置添加CRC(ModbusCRC16、CCITT-CRC16、XOR、SUM、CRC32) 3... -
程序员串口调试助手
2018-10-30 18:57:50程序员串口调试助手,可以实时调试串口,查看到串口接收发出的指令,跟一般串口调试助手不同,一般助手只有被一个应用程序调试占用,本助手在连接串口的同时,代码端也可以接收发出串口的相关信息指令,非常好用。... -
Awen串口调试助手
2018-07-03 15:58:31Awen串口调试助手。。。。。。。打开串口调试助手,设置COM1的波特率、奇偶校验位、数据位、停止位等参数,同时确保COM2是未占用状态。我们这样设置,是为了让COM1负责发送数据,COM2负责接收数据。如果COM2也被占用... -
通用串口调试助手
2018-10-30 19:17:37通用串口调试助手,每次串口只可以被当前一个应用程序占用。欢迎下载。 -
(串口通信编程) 开源串口调试助手Common (Com Monitor)
2021-03-14 03:26:55我写的串口调试助手程序以及源代码.警告:请勿将本软件源代码用于任何商业用途。其实吧, 我写的这个串口软件绝对比网上流传的一些串口调试软件好用很多, 对于软件,我本身并没有作太多推广, 一些功能我由于懒也没有...我写的串口调试助手程序以及源代码.
警告:请勿将本软件源代码用于任何商业用途。
其实吧, 我写的这个串口软件绝对比网上流传的一些串口调试软件好用很多, 对于软件,我本身并没有作
太多推广, 一些功能我由于懒也没有文档化; 如果您正在使用, 也觉得我说得没错, 还望您帮忙推广一下. 感激!
本程序最近正在使用C++完全重构, github上面的源代码无法通过编译~~
敬请期待最新版本!
微云你就一坑货, 说了的链接永久有效呢?
声明:本软件为开源软件,绝对不包含任何对系统不利的代码,对于360的那种行为,我不想说什么.
软件界面:
-------------------------------------------------------------------------------------------------------------------------
说明: 更新信息可能不会再更新到这里, 请到GitHub上面查看.
更新:
2014-07-07: ①优化:接收数据时,如果最后一个字符是'\r'或'\n',则会在一定时间内等待接收所有'\r','\n'字符,避免导致读取'\r\n'可能造成的两次换行
②更改:除已经提到的那三种情况, 还有使用'\r\n\r'三个字符作为换行符使用的, 已增加支持
2014-07-07:
①修复:回车换行字符'\r','\n','\r\n'均能达到换行效果
②修复:一开始"忽略回车"等无法点击问题
③优化:简化对数据中包含'\0'的数据的处理
④增加:简洁界面模式时把工具栏放到左边
⑤更改:只显示接收区按下的"回车"字符为"",其它不显示
⑥增加:接收区增加一个"清空数据"菜单
2014-07-06 1.17:
①增加:允许从接收区输入字符并发送(更友好的类交互模式)
会显示的字符包括:
' '
'\b'
'\t'
'\r'
感觉输入效果还不错:
②更改:更改了字符接收区/发送区的字体为Consolas等宽字体,不再使用原来的Courier字体
③增加:简洁模式 - 此模式下大部分界面元素会被隐藏, 有时候这样更舒服
见上图所示, 左下角为"简洁模式"开关, 开启简洁模式后就像上图, 是不是很简洁?
④增加:主窗口的自动界面布局(允许拖动改变窗口大小,控件坐标自动调整)
⑤更改:默认使用的模式改为:字符接收+字符发送
2014-07-05 1.16 (未对外发布):
①字符接收数据时,增加对控制字符Backspace的支持(即'\b'),效果就是向前删除一个字符
②修复一处中文检测错误(原来是对的, 不知道什么时候改错了
③删除了窗体大小调整(下个版本即将使用自动布局)
2014-03-03 1.15:
更新:支持手动输入非标准波特率
改进:增加了几个功能快捷键,比如Alt+S为发送,....
优化:修正:如果接收缓冲区有未显示的数据,则会在按下继续显示时进行提示,而不是原来的在接收到下一次的数据时进行提示;
2013-11-02 1.14:
更新:修改了原来的命令发送模式的界面,现在变得更加友好了
如下图, 先选择要发送的命令列表文件:
点击打开, 将会打开如下界面:
1.上面的代码是我测试蓝牙芯片用到的命令列表文件, 点击"发送命令"就会发送对应的一条命令
2.16进制还是原来的要求, 2个一组即可; 对于字符数据:默认开启转义字符功能, 比如 '\n' 就代表换行,
支持字符型转义字符有6个, \n,\r,\\,\t,\a,\v,\b, 那些可见的字符不需要转义, 比如引号,问号...
支持的16进制转义字符格式:\x?? - 其中, 一个?代表一个16进制字符, 以上4个字符组成一个16进制值,缺一不可
3.文本框中的数据可以在发送时随时修改,回车键可看到效果, (但修改的内容目前不能更新到原来的本地文件上)
4.注意到数据类型后面的"双击改变"几个字样, 也就是说通过双击, 可以改变那条命令的解析格式
5.数据大小是指最终要被发送的数据的大小, 而不是转义前的大小
命令文件的格式举例:
C:初始化SPP库:at+init\r\n
C:查询任意访问码的蓝牙设备:at+iac=9e8b33\r\n
C:查询设备类为0x1f1f的蓝牙设备:at+class=1f1f\r\n
C:设置查询模式:at+inqm=1,9,48\r\n
C:过滤,查询周边蓝牙设备:at+inq\r\n
H:16进制测试:12 45 67 4f
分为3部分组成, 两者之间用冒号隔开:
第1部分:C或者H(大写), 代表数据是16进制还是字符数据
第2部分:命令的名字
第3部分:数据对应的数据
BUG修复:
上一个版本在发送数据前忘记检查串口是否已经打开了, 已修复~
----------------------------------------------------------------------------------------------------------
2012-12-24 1.0.0.0:
发布第1个版本
2012-12-26:
自动识别当前存在,插入,移除的串口号
2013-01-11 1.0.0.1:
增加保存接收区数据到文件(16进制/文本形式)
增加从文件读数据到发送区(16进制/文本形式)
增加暂停显示功能
增加复制发送/接收区数据到剪贴板
2013-01-18 1.0.0.2:
修复:文本文件,16二进制文件读取错误
修复:程序内部缓冲区满后使程序进入死循环
修复:文本字符方式显示接收的数据时产生不正确的换行符的错误,若要产生换行符, 请使用"\n"
2013-02-08 1.0.0.3:
内部程序作了许多的优化工作,包含数据的发送方式等
修复接收数据时鼠标在接收区的文本选择造成的干扰
2013-02-14 1.0.0.4:
增加显示出0~127号ASCII对应8,10,16进制功能
2013-02-24 1.0.0.5,今天元宵节:
更改原来的1~64串口列表到自动检测计算机上的可用串口
2013-02-27 1.0.0.6:
若发送文本,则自动发送被自动取消(若自动发送选项已打开)
在显示模式下不允许对接收区数据进行选择操作
提供硬件支持的串口设备设置
为用户提供串口超时设置
提供手动设置DTR/RTS引脚电平
2013-03-01 1.0.0.7:
修改原计算器(系统)为表达式求值计算器(简单版本)
2013-03-03:
添加:菜单添加
修改:在关闭串口后自动发送前面的钩不再自动取消(如果已经选中)
修改:串口被关闭/移除后串口列表回到第一个串口设备的BUG
2013-03-04:
修改:现在在串口列表中可以显示串口在设备管理器中的名字了
修正:无法显示 MSP430-FETUIF Debugger 的串口号(现在调用SetupApi更新列表)
2013-03-05:
为了方便数据的统计与显示,16进制内容与字符内容被显示到不同的编辑框中
2013-03-09 1.0.0.8:
修正在使用SetupApi枚举串口设备时未检测并口设备而造成的内存异常访问错误
减少在某些波特率(如:19200bps)下丢包严重的情况(如:MSP430串口),有时候还是会发生,等待修复.某些软件(如:SComAssistant采用每
次只读一个字节的办法效果还行, 就是速度有点慢. 我改成了WaitCommEvent函数调用了(原来是Pending ReadFile),减少了CPU占用(有些串口驱动并不总是支持同步操作.
以前只管ReadFile+输出nRead字节,这里错误,ReadFile并不保证读取到要求的数据量后才返回,这里会导致严重丢包,WriteFile亦然.
速度减慢,但数据更完整
2013-03-10 1.0.0.9:
修正:因为在格式化字符串的最后少写了一句 *pb = '\0',导致接收区数据显示错误!
修复:对utils.hex2chs和add_text作了大量修改,大大减少数据丢包,貌似没有丢包?,细节处理参见源程序
1.0.0.8版本因为内部原因速度严重减慢, 1.0.0.9回到原来的快速!
2013-03-18:
更正:若为字符显示方式,16进制方式保存不被允许,因为格式基本上不满足!
2013-03-23 1.10:
添加:工作模式中,右键点击接收区字符文本框可以使能中文显示模式(不推荐),由于中文字符由
两个字节构成,所以:一旦在某一次接收过程中只
接收到了中文字符的一个字节,那么数据就会显示出错, 这个无法避免, 所以建议尽量不使能中文显示模式.
修正:用C语言的人们都习惯使用'\n'作为换行符,我也这样使用,
但偏偏Windows的编辑框以'\r\n'作为换行符,没有办法,我不得
不把所有的'\n'换成'\r\n',效率必然会下降,而且我不得不计算出
\n的个数先 --> 为了计算所需缓冲区的大小.
添加:现在可以显示出还未被发送出去的数据计数.
添加:新增计时器,打开串口后开始计时,关闭后停止计时.
2013-03-25:
修正:大大减少中文乱码的问题.细节处理见代码.
增加:字符串转16进制数组功能,工具菜单里面.
2013-04-04:
修正:无法复制接收区字符文本的BUG.
小提示:在选择串口时,如果没有任何可用的串口,则进行提示更新.
2013-04-07:
修改:完全修改了utils.str2hex的实现,大大增加了16进制输入的灵活性.
现在的要求:每个16进制值由两个相邻字符组成,无其它限制.(以前是2个相邻字符+一个空格)
2013-04-11:
发送字符数据时,对于换行,只发送'\n',不再发送'\r\n',注意:结尾的'\0\'不被发送!
2013-04-13:
修正:更改发送与接收方式为异步方式.
添加:简单波形显示.
2013-04-23:
修正:发送与接收方式改回同步方式!坑~
修正:当发送操作达到100次时无法继续发送的BUG!
修改:优化内部线程同步机制,避免程序停止工作(失去响应)!
优化:优化自动发送数据的方式,提高精度,减小内存/CPU占用!
小提示:在加载/保存文件时,若不清楚打开/保存方式,可以查看简单的帮助信息!
2013-05-11:明天母亲节
修正:终于找到一个比较好的办法来处理自动发送用到的重复数据了,呵呵,时间下限减少到10ms
2013-07-05:
临时修正:选择从文件加载并取消后, 串口号选择的ComboBox会消失不见,不知道原因,临时已解决
2013-07-14:
改进:程序内部改进内存分配算法,避免因程序错误造成内存泄漏
2013-07-20 1.12:
2013-09-10 1.13 今天教师节:
增加:现在可以手动编写待发送的命令文件,并发送命令了 - 在发送文件时选择 命令文件, 格式见博客后面的介绍
增加:字符发送模式下,可以选择取消回车换行符的发送,可以选择插入转义字符
1.支持的字符型转义字符:
\r,\n,\t,\v,\a,\b,\\
2.支持的16进制转义字符格式:
\x?? - 其中一个问号代表一个16进制字符, 不可省略其一,
必需保证4个字符的格式
3.'?',''','"', 等print-able字符不需要转义
-
【Qt串口调试助手】1.1 - Qt5编写串口调试助手,Qt串口编程
2020-10-13 10:45:57仿照成品制作一个自己用Qt编写的串口助手。 1. 布局UI界面 创建QWidget工程,布局UI界面:拖入2个 Plain Text Edit,作为串口数据的接收显示和发送框。 拖入几个 Combo Box 、Label 和 Push Button,使用两个...这章来学习串口数据流操作。仿照已有成品制作一个用Qt开发的串口调试助手。
介于篇幅有限,本篇只介绍一个最简单的能收发的串口调试助手的制作。后续篇幅会陆续对剩余代码进行讲解,并添加各种功能,对显示、操作、功能的各方面继续优化,达成与市面上的成品一样的功能。目标精简、可靠、高效、便于当作框架二次开发,欢迎各位使用和作为框架进行二次开发,并提出改进意见。
发布效果展示:Qt串口调试助手演示效果
GitHub源码仓库:Qt串口调试助手源码下载
更新:后期在原有串口功能上,使用了QCustomPlot绘图库,制作了串口波形绘图上位机,非常适合单片机上传波形进行调试。最多可显示20条曲线,支持滚轮Y轴缩放、左键拖拽。波形帧协议兼容匿名四轴调试上位机,并增加了16进制转换,支持GB2312中文编码。详细介绍见:波形绘图上位机源码下载
GitHub中为最终发布代码,可能与讲解教程中略有不同,望自行对照。
1. 布局UI界面
- 创建QMainWindow工程。
- 布局UI界面:拖入2个 Plain Text Edit,作为串口数据的接收显示和发送框。
- 再拖入几个 Combo Box 、 Label 和 Push Button,使用两个Widget进行布局。如下所示。
- 将接收区的 Plain Text Edit,属性勾选上 readOnly,使其运行时不会被人为的输入操作影响。
- 加入一些弹簧,使布局美观。(有必要可以加设置,固定窗口大小,不能最大化。)
2. 添加下拉列表项
- 在ui设计界面中,双击 Combo Box添加列表项。
- 更改下拉框的默认值。修改 currentIndex属性,改变默认值。
3. 修改控件名称
- 将控件的命名统一,方便管理和程序书写。
4. 添加串口类,自动扫描可用串口
- 在工程 .pro文件中,添加 "QT += core gui serialport",以支持串口功能。
- 窗口构造函数中,添加自动扫描可用串口代码。(由于代码位于窗口构造函数中,故仅在应用刚打开时扫描串口,以后会增加点击下拉框时扫描,需要对鼠标点击事件进行重写)
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); QStringList serialPortName; // 自动扫描当前可用串口,返回值追加到字符数组中 foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts()){ serialPortName << info.portName(); } // 可用串口号,显示到串口选择下拉框中 ui->cmbSerialPort->addItems(serialPortName); }
- 如果电脑连接了串口设备,运行Qt应用,点击下拉框,会看到可用的串口号。
- 与标准的串口助手对比,结果一致。
5. 打开串口、翻转开关
- 功能:点击 "打开串口" 按钮,初始化串口参数,并按照设置好的参数打开串口。
- 在 "打开串口" 按钮位置,右键,转到槽...。编写串口配置代码。
- 将字符串,转换为可以代码设置的枚举,根据当前值,设置参数。之后打开对应串口端口。
// 打开/关闭串口 槽函数 void MainWindow::on_btnSwitch_clicked() { QSerialPort::BaudRate baudRate; QSerialPort::DataBits dataBits; QSerialPort::StopBits stopBits; QSerialPort::Parity checkBits; // 获取串口波特率 // 有没有直接字符串转换为 int的方法??? //baudRate = ui->cmbBaudRate->currentText().toInt(); if(ui->cmbBaudRate->currentText() == "9600"){ baudRate = QSerialPort::Baud9600; }else if(ui->cmbBaudRate->currentText() == "38400"){ baudRate = QSerialPort::Baud38400; }else if(ui->cmbBaudRate->currentText() == "115200"){ baudRate = QSerialPort::Baud115200; }else{ } // 获取串口数据位 if(ui->cmbData->currentText() == "5"){ dataBits = QSerialPort::Data5; }else if(ui->cmbData->currentText() == "6"){ dataBits = QSerialPort::Data6; }else if(ui->cmbData->currentText() == "7"){ dataBits = QSerialPort::Data7; }else if(ui->cmbData->currentText() == "8"){ dataBits = QSerialPort::Data8; }else{ } // 获取串口停止位 if(ui->cmbStop->currentText() == "1"){ stopBits = QSerialPort::OneStop; }else if(ui->cmbStop->currentText() == "1.5"){ stopBits = QSerialPort::OneAndHalfStop; }else if(ui->cmbStop->currentText() == "2"){ stopBits = QSerialPort::TwoStop; }else{ } // 获取串口奇偶校验位 if(ui->cmbCheck->currentText() == "无"){ checkBits = QSerialPort::NoParity; }else if(ui->cmbCheck->currentText() == "奇校验"){ checkBits = QSerialPort::OddParity; }else if(ui->cmbCheck->currentText() == "偶校验"){ checkBits = QSerialPort::EvenParity; }else{ } // 想想用 substr strchr怎么从带有信息的字符串中提前串口号字符串 // 初始化串口属性,设置 端口号、波特率、数据位、停止位、奇偶校验位数 mySerialPort->setBaudRate(baudRate); mySerialPort->setDataBits(dataBits); mySerialPort->setStopBits(stopBits); mySerialPort->setParity(checkBits); mySerialPort->setPortName(ui->cmbSerialPort->currentText());// 不匹配带有串口设备信息的文本 // 根据初始化好的串口属性,打开串口 // 如果打开成功,反转打开按钮显示和功能。打开失败,无变化,并且弹出错误对话框。 if(ui->btnSwitch->text() == "打开串口"){ if(mySerialPort->open(QIODevice::ReadWrite) == true){ //QMessageBox:: ui->btnSwitch->setText("关闭串口"); // 让端口号下拉框不可选,避免误操作(选择功能不可用,控件背景为灰色) ui->cmbSerialPort->setEnabled(false); }else{ QMessageBox::critical(this, "错误提示", "串口打开失败!!!\r\n该串口可能被占用\r\n请选择正确的串口"); } }else{ mySerialPort->close(); ui->btnSwitch->setText("打开串口"); // 端口号下拉框恢复可选,避免误操作 ui->cmbSerialPort->setEnabled(true); } }
- 为了避免串口被占用,或者其他错误,我们对打开也做相应的处理:如果串口被占用,会弹出错误提示框。
- 并且为了防止端口在打开时,被篡改参数,避免改动串口号,做了处理:端口在打开后,下拉框是灰色不可选的。
- 最终实现 打开串口 / 关闭串口 的功能转换与翻转显示。
6. 接收串口数据
- 预计结果:接收到串口数据后,将其显示到接收文本框中。
- 构造函数中建立信号槽,将串口读准备信号,关联接收区显示处理槽函数。
- 文本框内容使用插入显示。并在每次追加后移动光标
- 对于接收的显示处理方式,我总结了如下四种。各位有兴趣可以将注释打开,运行去了解。
- 其中第3、4种都是将文本框全部读取再追加内容,运行效率很低,而网上很多开源代码是使用的这种处理方式。这正是使我想要搭建自己开发框架的原因,追求可靠、高效。
- 我在代码中,使用的是第2种处理方式。解决了不同硬件的插入换行问题,兼容 CH340、CP2102等常用设备。(现象、成因和解决方法在后面序章有说)
7. 发送串口数据
发送按钮,右键,转到槽...。
添加发送字符串代码。
8. 清空收区、发区文本内容
发送按钮,右键,转到槽...。
添加清空代码。
运行结果
- 运行时是没有左上角图标的,这是我后来测试生成可执行文件时添加的。
总结
Qt编程串口调试助手的过程比较简单,但仍有很多地方待完善。例如端口扫描、16进制转换,硬件兼容性,这些会在后面的篇幅进行讲解和添加,力求精简、可靠、高效、便于当作框架二次开发。欢迎各位使用和作为框架进行二次开发,并提出改进意见。
GitHub源码仓库:Qt串口调试助手源码下载
-
SerialAndNet串口网络调试助手二合一.rar
2020-03-14 11:21:011. 串口调试助手和网络调试助手合二为一,特别适合调试网络设备。 2. 支持中文和英文双语言,再也不用愁找不到合适的串口调试软件给国际客户用了。 3. 最小化时停留在右下角,不占用任务栏位置,需要时一键调入。 ... -
串口调试助手
2018-12-26 22:03:13串口助手WinCom1.0测试版 介绍: [九月]首发测试版,欢迎各位测试提出宝贵建议。 这是个绿色软件,单个文件即可执行,不会给您的机器增加任何负担。 -
推荐一个好用的串口调试助手stduart
2020-07-29 11:08:44推荐一个串口调试工具 支持的特性: 1、多串口同时调试,互不影响 2、接收/发送 ASCII/HEX模式 3、接收帧/字节数据统计 4、接收数据标签显示,帧序号/长度/时间戳 5、暂停/恢复接收 6、清空接收 7、周期发送数据 ...经过了好长时间的研发,终于出新版本了,对原先的软件进行了推倒重来,浴火重生
下载地址: https://std.plus
stduart串口调试助手 完整特性列表
-串口设备自动枚举识别
-设备占用状态自动更新
-常用波特率,校验位,数据位,停止位等参数支持
-接收模式/发送ASCII/HEX模式切换
-模式切换时数据全局更新
-发送回显支持
-标签支持,帧序号/时间戳/类型/长度显示
-分帧超时修改,可定制分帧参数
-接收缓冲区大小修改,可调整分帧效果
-接收区颜色,正文/标签,前景/背景自定义
-发送区校验码支持,checksum/crc8/crc16/crc32
-校验码支持MSB/LSB
-发送区自动添加结束符支持,支持不同组合定义
-快捷发送支持
-周期发送功能,可定义发送周期
-批量发送功能,支持导入导出
-批量发送支持在线资源的导入
-批量发送支持循环,批量
-发送内容历史记录
-日志导出支持
-接收区暂停/恢复
-设备连接状态显示
-接收/发送,帧/字节统计
-接收/发送状态动画
-参数的自动保存/恢复/重置
-smart docking智能停靠
-自定义视图显示
-建议提交窗口
-自动更新检查-------------------------------------------------以下为历史版本----------------------------------------------------
推荐一个串口调试工具
支持的特性:
1、多串口同时调试,互不影响
2、接收/发送 ASCII/HEX模式3、接收帧/字节数据统计
4、接收数据标签显示,帧序号/长度/时间戳
5、暂停/恢复接收
6、清空接收
7、周期发送数据特色功能
1、图表暂支持接收帧响应时间
2、接收数据自动记忆功能,不会丢失任何接收数据。后面考虑加入云同步功能
3、发送数据记忆功能,方便使用
4、工具箱中包含了常用的功能
5、自带常用USB串口驱动 -
AccessPort0_不占用串口_好用的串口监视工具_串口不占用_serialmonitor_
2021-10-03 10:18:15监视串口232数据,最好的是可以不占用串口,这样可以监视整个数据流,调试非常方便 -
QT项目实战之串口调试助手
2020-09-17 23:33:324、字符与16进制编码字符的互相转换 3、工程打包发布 1、使用QT自带的windeployqt.exe打包 2、使用HM NIS Edit编辑器与NSIS编译器更深层次打包 四、功能测试 一、前言 给大家安利一款自己编写的串口调试助手小软件,... -
有人网络调试助手 串口调试助手二合一
2016-04-15 19:27:10有人串口调试助手和网络调试助手合二为一,特别适合调试网络设备。 2. 支持中文和英文双语言,再也不用愁找不到合适的串口调试软件给国际客户用了。 3. 最小化时停留在右下角,不占用任务栏位置,需要时一键调入。 4... -
串口调试工具,北斗短信测试
2016-12-18 00:01:38本软件用于单个串口调试或多个串口设备的监视和控制,集成北斗RDSS调试环境。 本软件的授权 本软件为共享软件。 软件特点: 1:支持多个串口同时工作,采用多线程技术,CPU占用率极低,完全不影响系统其它操作。... -
让串口调试助手像命令行一样
2021-03-13 21:41:00著名的Xcom 串口调试软件,不支持这个功能.于是我萌生了做一个上位机适配这个shell 的想法. 我的想法很简单,就是做一个窗口尽量让他像我们的命令行. 但是串口还是需要扫描,检查串口.所以我在最下面增加了几个按钮.... -
雪莉蓝串口调试助手 V1.2.0 Beta
2013-11-29 23:06:27V1.2.0 Beta 1. 增加最小化到托盘功能 2. 增加窗口全局置顶功能 3. 删除16进制粘贴提示,粘贴模式与编辑模式相同 4. 增加停止接收状态增加明显提示 5. 增加WIN7系统提示以管理员模式...11.增加被占用串口自动打开功能 -
pyqt5 ,实现串口调试助手
2020-11-06 21:38:47pyqt5 ,实现串口调试助手 这个是串口调试助手的基础上开发控制云台的操作界面。还未全部做完后面会慢慢做完的。 from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtWidgets import QMessageBox from ... -
QT5 - 串口调试助手
2019-11-03 23:39:39具体有啥功能暂时也没法想得那么全面,但串口通信肯定是最最基础的吧,再加上之前没有学习过Qt,C++水平也菜的不行,所以先实现一个具备最简单的串口收发功能的串口调式助手试试水。 正是因为菜,所以当我们要真正... -
VB串口调试助手源代码
2018-01-10 22:42:04MsgBox "没有发现此串口或被占用", 49, "串口调试助手" CloseCom Case Else MsgBox "没有发现此串口或被占用", 49, "串口调试助手" CloseCom End Select Err.Clear End Sub Private Sub Comm_... -
Qt5串口调试助手(3)--串口参数设置
2021-02-24 22:08:231.串口参数设置界面 参数设置界面如下图所示,包括串口号、波特率、数据位、停止位、校验位以及打开串口按钮。 功能需求如下,当点击"打开串口"按钮后,如果正常打开,则将按钮内容更改为“关闭串口”,相应的控件... -
分享自己使用python+pyserial+pyQT5写的串口调试助手
2017-11-14 21:31:152、pycom串口助手实现的功能,十六进制数据发送,接收,字符发送,接收,定时发送,增加一个刷新串口设备按钮,可以不用关闭软件,刷新一下新安装的串口。串口助手运行过程中USB转串口的设备断开软件不会死机,... -
基于MSCOMM32.OCX和MFC框架的串口调试助手的开发
2020-09-27 18:48:45点击主对话框,在属性栏中找到Caption,修改为“串口调试助手”; ->摆放文本及下拉列表:Static Text和Comb Box控件,同样找到Caption,修改其名称,在Comb Box控件的属性列表中,将Sort改为False(填入数据之后... -
串口调试助手及源代码
2010-12-15 19:18:34CommMonitor串口监视精灵(DLL版调用接口) Demo 示列清单 -------------------------------------------------------------------------------- SDK二次开发接口\Source\D7 Delphi7 DEMO 源文件 SDK二次开发接口\... -
如何配置串口服务器及串口调试的六个技巧
2021-07-31 01:17:42今天,本文总结和阐述了如何配置串口服务器和串口调试的六个技巧:1.如何设置串口服务器的串口属性,比如波特率参数和数值?点击屏幕上的“设备”单元;手动键入“程序设置”;手动选择“程序”,最后手动输入“串口参数... -
串口调试助手(CM野人版)4.0有严重Bug,已经跟作者反应,等候更新
2016-05-31 14:24:07这个软件,看起来很漂亮,能任意设置波特率,支持921600波特率,看起来很华丽。...我换了别的串口助手,问题消失。所以一定是这个助手的问题。基础的调试软件出问题,非常不易发现,带来的损失非常大。 建 -
c++ 事件驱动多线程的串口调试助手 上位机
2021-06-10 15:33:27唔,现在网络上有各种各样的串口调试助手,但是别人的再好,不如自己写一个拿过来方便是吧,在做专门的上位机的时候也需要一个自己编写的上位机,实现更多的独特的功能。 -
QT实现串口调试助手(六):页面布局
2021-01-09 13:10:01INI文件存取串口信息 之前没有设置页面布局,当进行放大缩小时,组件的位置还是保持原样,这样很不实用。所以要调整一下页面和组件布局 1、添加horizontalLayout水平布局,将页面的组件分成3个部分: 比例...