精华内容
下载资源
问答
  • STM32串口调试助手+HEX烧写工具,包括了两个调试助手(XCOM、丁丁)和两个烧写工具(FlyMcu、普中自动下载软件1.86),经个人测试在STM32的F1和F4系列开发中都比较好用。
  • 工业级的wince串口调试工具,俺自己打造,wince6.0测试通过,
  • DA14580蓝牙串口下载工具,是作者开发一款用串口下载的小工具,相比官方提供的下载工具,具有打开和关闭界面速度开、下载时重再程序、支持hex和bin两种文件格式、方便工程师开发调试程序等特点。作者一直在用该工具...
  • 压缩包中含有 sscom3.2和 O-ComTool_V2.0.0_Pro 两个串口调试工具、Virtual Serial Port Driver Pro和 VirtualSerialPortDriver6.9 两个虚拟串口工具。串口调试软件很好用,可以传送TXT文件,和HEX文件,还可以自动...
  • C#程序用于ASCII和HEX转换工具,用C#重新写的ASCII和HEX代码互相转换的小工具,有点不稳定,只要格式正确使用就没什么问题.后会给出源代码.
  • 好用的串口工具sscom

    2014-04-11 11:01:30
    好用的串口工具,甩超级终端和串口助手几条街。尤其是hex收发调试,异常好用。
  • 使用NDK实现串口工具,包含完整操作界面。 支持设备串口列表的获取,串口号、波特率的选择、打开/关闭串口、数据保存(ASCII和Hex),命令发送。
  • STVP stlink下载hex文件的软件

    千次下载 热门讨论 2013-01-22 16:48:47
    STVP stlink下载hex文件的软件,STVP stlink下载hex文件的软件,STVP stlink下载hex文件的软件
  • Qt串口工具

    2019-07-31 15:55:53
    最近刚好用上串口工具就写了一个 自用的 凑合一下,网上的带广告不好用 ,源码在附件 用的Qt自带的QSerialPort以及QSerialPortInfo 代码片段 void MainWindow::initrd(){ /* 串口初始化 */ serialPort = new ...

    最近刚好用上串口工具就写了一个 自用的 凑合一下,网上的带广告不好用 ,源码在附件

    用的Qt自带的QSerialPort以及QSerialPortInfo

    代码片段

    void MainWindow::initrd(){
        /* 串口初始化 */
        serialPort = new QSerialPort(this);
        ui->comBox->clear();
        ui->comBox->addItems( getComNum());
    
        comConfig<<ui->comBox \
                <<ui->baundBox \
                <<ui->dataBox \
                <<ui->stopBox \
                <<ui->crcBox \
                <<ui->ctrlBox;
        ui->comBox->setCurrentIndex(0);
        ui->baundBox->setCurrentIndex(6);
        ui->dataBox->setCurrentIndex(3);
        ui->stopBox->setCurrentIndex(0);
        ui->crcBox->setCurrentIndex(0);
        ui->ctrlBox->setCurrentIndex(0);
    
        on_comBox_activated(ui->comBox->currentText());
        on_baundBox_activated(6);
        on_dataBox_activated(3);
        on_stopBox_activated(0);
        on_crcBox_activated(0);
        on_ctrlBox_activated(0);
    
        #if 0
        serialPort->setBaudRate(QSerialPort::Baud115200);
        serialPort->setDataBits(QSerialPort::Data8);
        serialPort->setStopBits(QSerialPort::OneStop);
        serialPort->setParity(QSerialPort::NoParity);
        serialPort->setFlowControl(QSerialPort::NoFlowControl);
        #endif
    
        /* 接收显示 */
        ui->disTextRadio->setChecked(true);
        isDisPlay = true;
    
        ui->rcvDisPlay->setReadOnly(true);
    
        /* 日志保存 */
        ui->rcvLogFile->setChecked(false);
    
        /* 串口buff初始化 */
        comBuff.clear();
        /* 初始化串口接收定时器 */
        rcvDateTimer = new QTimer(this);
        //rcvDateTimer->setInterval(10);
        connect(rcvDateTimer, &QTimer::timeout, this, &MainWindow::disPlayLog);
    
        /* 保存日志 */
        /* 默认保存在工作目录中 */
        /* 默认保存到我的文档目录 */
        QString logFilePath = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + "/mycoms/log/";
        /* 检测目录是否存在 不存在创建 */
        QFileInfo info(logFilePath);
         qDebug()<<logFilePath;
        if(info.isDir() == false){
            QDir dir;
            dir.mkpath(logFilePath);
        }
    
        logFilePath += QDateTime::currentDateTime().toString("log-yyyy_MM_dd-hh_mm_ss") + ".log";
        /* 原始日志 */
        logPath = logFilePath;
    }

    串口获取

    QStringList MainWindow::getComNum(){
        QStringList comList;
        QList<QSerialPortInfo> serialList =  QSerialPortInfo::availablePorts();
        for(int i= 0; i< serialList.length();i++){
            comList<<serialList.at(i).portName();
        }
        comList.sort();
        return comList;
    }

    串口读取:

    void MainWindow::readyRead(){
        if( (rcvDateTimer->isActive()) && (rcvDateTimer->interval() > 0)){
            rcvDateTimer->stop();
        }
        QByteArray rcvdata;
        QString rcvDis;
        rcvdata = serialPort->readAll();
    
        if(ui->disHexRadio->isChecked()){/* hex 显示 */
            rcvDis = QString(rcvdata.toHex().toUpper());
            QString tmp,disTmp;
    
            for(int i = 0; i< rcvDis.length();i+=2){
                tmp.clear();
                tmp = rcvDis.mid(i,2);
                disTmp += tmp;
                disTmp += " ";
            }
            rcvDis = disTmp;
        }else {/* 文本显示 */
            rcvDis = QString(rcvdata);
        }
        comBuff += rcvDis;
        rcvDateTimer->start(20);
    }

    串口发送:

    void MainWindow::on_sendBtnTwo_clicked()
    {
        QByteArray da;
        if(serialPort->isOpen() == false){
            QMessageBox::information(this, "错误2","请打开串口后发送数据");
            return;
        }
        QString tmp = ui->sendDataTwo->text().simplified().remove(QRegExp("\\s"));
        sendPlayLog(tmp);
        if(ui->sendHexTwo->isChecked() == true){
            /* hex 发送 */
    
            da = QString2Hex(tmp);
        }else{
            /* 文本发送 */
            da = ui->sendDataTwo->text().toLocal8Bit();
        }
        serialPort->write(da);
    
        sendPlayLog(QString(da));
    }

    其他部分详见附件:附件

    免积分通道

    链接: https://pan.baidu.com/s/17hM7y0xw0WFFgPbaC7OjRg 提取码: tnvj 

    展开全文
  • java串口工具

    2017-12-14 17:07:24
    一个简单的Java串口程序,自动扫描串口,波特率可选择,ASCII和HEX双显示模式,显示发送,显示时间,保存Log信息等,实时显示串口状态,统计接收、发送的数据量,大数据发送。文件为.jar格式,用jdk1.8.0_152编译。...
    自己写了一个Java串口工具,有需要联系哦!
    展开全文
  • 本课程采用项目驱动的方式直接学习PyQt5,在完成一款串口工具的制作过程中,由浅入深的学习PyQt5,学完本课程后,同学们可以尝试自己设计属于自己的上位机工具。   为什么本课程采用项目驱动方式开发?   ...
  • STM32F103学习1:由开发软件MDK4.12生成HEX文件与程序下载串口) 记录一下学习的过程,方便之后的回顾 一、首先,安装MDK4.12版,一路next就可以了。注册机什么的使用就不说了。 二、我们编译出用于烧写进...

    STM32F103学习1:由开发软件MDK4.12生成HEX文件与程序下载(串口)

    记录一下学习的过程,方便之后的回顾

    一、首先,安装MDK4.12版,一路next就可以了。注册机什么的使用就不说了。

    二、我们编译出用于烧写进stm32的HEX文件

    1.打开开发板卖家赠送的样例工程文件夹LED中的LED.uvproj。

    2.单击工具栏flash中的configure flash tools

    3.在Device(设备)选项卡中选择对应的芯片,我的是STM32F103C8T6

    4.Target 选项卡时钟频率与开发板上匹配,为8Mhz,其他不变。

    5.output选项卡选中生成HEX file

    6.单击OK 设置完成

    7.单击下面第三个按钮re-build工程,编译、链接。这样,在led工程目录下面的obj子目录下面就会生成一个LED.hex文件,这就是编译好可以写入芯片的文件。

     

    三、使用串口的方式写入程序:

    1.硬件准备:PL2303(USB转TTL串口)、开发板、杜邦线

    将开发板与PL2303的TX、RX交叉连接,5V和GND接好,记得将开发板切换到ISP模式(每种开发板可能方式不同(去看卖家给的手册和原理图),我这块是拔下跳帽。)

    2.驱动准备:

    安装好PL2303的驱动程序,老版的驱动程序可能会出现蓝屏的情况,我在win7系统上使用时曾经出现过。

    下面是找到的原厂驱动(可用)

    http://www.prolific.com.tw/UserFiles/files/PL2303_Prolific_DriverInstaller_v1_7_0.zip

    按照下载到的压缩包里的.pdf手册就能正确的安装驱动,这里注意各个版本的操作系统安装上可能有区别,仔细看一下。

    3.软件准备:

    卖家提供的是一套第三方开发的烧录软件:

    很简单,选好程序文件、串口号,单击开始下载就OK了。使用上也是可以的,程序下载正常。但是以防以后出现可能的问题,我还是去找了ST官方的烧录软件。

    4.软件准备2:

    百度了一下这个st官方软件叫:Flash_Loader_Demonstrator

    我下载了v2.6.0版本的

    一路next安装成功

    打开软件,选好串口号,next

    继续next

    因为STM32F103C8T6是64K的大小的,选择med-density_64K,单击next

    这里是选择咱们要进行什么操作,选中Download to file ,Erase necessary file (擦除必要的页),单击...选择文件,修改文件类型为.hex格式,选好刚才生成的hex文件,

    单击next

    烧录成功啦~

     最后,将开发板由ISP模式恢复成运行模式,LED开始闪烁了:

    展开全文
  • 串口调试助手3串口调试助手加ASCII码转换HEX串口调试的好帮手
  • Python3+PyQT5+Pyserial 实现简单的串口工具

    万次阅读 多人点赞 2018-04-19 11:04:00
    先实现一个简单的串口工具,为之后的上位机做准备 代码如下: github 下载地址 pyserial_demo.py import sys import serial import serial.tools.list_ports from PyQt5 import QtWidgets from PyQt5...

    练手项目,先上图
    这里写图片描述
    先实现一个简单的串口工具,为之后的上位机做准备
    代码如下:

    代码 github 地址: https://github.com/ColinFred/Pyserial-Demo

    pyserial_demo.py

    import sys
    import serial
    import serial.tools.list_ports
    from PyQt5 import QtWidgets
    from PyQt5.QtWidgets import QMessageBox
    from PyQt5.QtCore import QTimer
    from ui_demo_1 import Ui_Form
    
    
    class Pyqt5_Serial(QtWidgets.QWidget, Ui_Form):
        def __init__(self):
            super(Pyqt5_Serial, self).__init__()
            self.setupUi(self)
            self.init()
            self.setWindowTitle("串口小助手")
            self.ser = serial.Serial()
            self.port_check()
    
            # 接收数据和发送数据数目置零
            self.data_num_received = 0
            self.lineEdit.setText(str(self.data_num_received))
            self.data_num_sended = 0
            self.lineEdit_2.setText(str(self.data_num_sended))
    
        def init(self):
            # 串口检测按钮
            self.s1__box_1.clicked.connect(self.port_check)
    
            # 串口信息显示
            self.s1__box_2.currentTextChanged.connect(self.port_imf)
    
            # 打开串口按钮
            self.open_button.clicked.connect(self.port_open)
    
            # 关闭串口按钮
            self.close_button.clicked.connect(self.port_close)
    
            # 发送数据按钮
            self.s3__send_button.clicked.connect(self.data_send)
    
            # 定时发送数据
            self.timer_send = QTimer()
            self.timer_send.timeout.connect(self.data_send)
            self.timer_send_cb.stateChanged.connect(self.data_send_timer)
    
            # 定时器接收数据
            self.timer = QTimer(self)
            self.timer.timeout.connect(self.data_receive)
    
            # 清除发送窗口
            self.s3__clear_button.clicked.connect(self.send_data_clear)
    
            # 清除接收窗口
            self.s2__clear_button.clicked.connect(self.receive_data_clear)
    
        # 串口检测
        def port_check(self):
            # 检测所有存在的串口,将信息存储在字典中
            self.Com_Dict = {}
            port_list = list(serial.tools.list_ports.comports())
            self.s1__box_2.clear()
            for port in port_list:
                self.Com_Dict["%s" % port[0]] = "%s" % port[1]
                self.s1__box_2.addItem(port[0])
            if len(self.Com_Dict) == 0:
                self.state_label.setText(" 无串口")
    
        # 串口信息
        def port_imf(self):
            # 显示选定的串口的详细信息
            imf_s = self.s1__box_2.currentText()
            if imf_s != "":
                self.state_label.setText(self.Com_Dict[self.s1__box_2.currentText()])
    
        # 打开串口
        def port_open(self):
            self.ser.port = self.s1__box_2.currentText()
            self.ser.baudrate = int(self.s1__box_3.currentText())
            self.ser.bytesize = int(self.s1__box_4.currentText())
            self.ser.stopbits = int(self.s1__box_6.currentText())
            self.ser.parity = self.s1__box_5.currentText()
    
            try:
                self.ser.open()
            except:
                QMessageBox.critical(self, "Port Error", "此串口不能被打开!")
                return None
    
            # 打开串口接收定时器,周期为2ms
            self.timer.start(2)
    
            if self.ser.isOpen():
                self.open_button.setEnabled(False)
                self.close_button.setEnabled(True)
                self.formGroupBox1.setTitle("串口状态(已开启)")
    
        # 关闭串口
        def port_close(self):
            self.timer.stop()
            self.timer_send.stop()
            try:
                self.ser.close()
            except:
                pass
            self.open_button.setEnabled(True)
            self.close_button.setEnabled(False)
            self.lineEdit_3.setEnabled(True)
            # 接收数据和发送数据数目置零
            self.data_num_received = 0
            self.lineEdit.setText(str(self.data_num_received))
            self.data_num_sended = 0
            self.lineEdit_2.setText(str(self.data_num_sended))
            self.formGroupBox1.setTitle("串口状态(已关闭)")
    
        # 发送数据
        def data_send(self):
            if self.ser.isOpen():
                input_s = self.s3__send_text.toPlainText()
                if input_s != "":
                    # 非空字符串
                    if self.hex_send.isChecked():
                        # hex发送
                        input_s = input_s.strip()
                        send_list = []
                        while input_s != '':
                            try:
                                num = int(input_s[0:2], 16)
                            except ValueError:
                                QMessageBox.critical(self, 'wrong data', '请输入十六进制数据,以空格分开!')
                                return None
                            input_s = input_s[2:].strip()
                            send_list.append(num)
                        input_s = bytes(send_list)
                    else:
                        # ascii发送
                        input_s = (input_s + '\r\n').encode('utf-8')
    
                    num = self.ser.write(input_s)
                    self.data_num_sended += num
                    self.lineEdit_2.setText(str(self.data_num_sended))
            else:
                pass
    
        # 接收数据
        def data_receive(self):
            try:
                num = self.ser.inWaiting()
            except:
                self.port_close()
                return None
            if num > 0:
                data = self.ser.read(num)
                num = len(data)
                # hex显示
                if self.hex_receive.checkState():
                    out_s = ''
                    for i in range(0, len(data)):
                        out_s = out_s + '{:02X}'.format(data[i]) + ' '
                    self.s2__receive_text.insertPlainText(out_s)
                else:
                    # 串口接收到的字符串为b'123',要转化成unicode字符串才能输出到窗口中去
                    self.s2__receive_text.insertPlainText(data.decode('utf-8'))
    
                # 统计接收字符的数量
                self.data_num_received += num
                self.lineEdit.setText(str(self.data_num_received))
    
                # 获取到text光标
                textCursor = self.s2__receive_text.textCursor()
                # 滚动到底部
                textCursor.movePosition(textCursor.End)
                # 设置光标到text中去
                self.s2__receive_text.setTextCursor(textCursor)
            else:
                pass
    
        # 定时发送数据
        def data_send_timer(self):
            if self.timer_send_cb.isChecked():
                self.timer_send.start(int(self.lineEdit_3.text()))
                self.lineEdit_3.setEnabled(False)
            else:
                self.timer_send.stop()
                self.lineEdit_3.setEnabled(True)
    
        # 清除显示
        def send_data_clear(self):
            self.s3__send_text.setText("")
    
        def receive_data_clear(self):
            self.s2__receive_text.setText("")
    
    
    if __name__ == '__main__':
        app = QtWidgets.QApplication(sys.argv)
        myshow = Pyqt5_Serial()
        myshow.show()
        sys.exit(app.exec_())
    
    

    ui_demo_1.py

    # -*- coding: utf-8 -*-
    
    # Form implementation generated from reading ui file 'demo_1.ui'
    #
    # Created by: PyQt5 UI code generator 5.6
    #
    # WARNING! All changes made in this file will be lost!
    
    from PyQt5 import QtCore, QtGui, QtWidgets
    
    class Ui_Form(object):
        def setupUi(self, Form):
            Form.setObjectName("Form")
            Form.resize(707, 458)
            self.formGroupBox = QtWidgets.QGroupBox(Form)
            self.formGroupBox.setGeometry(QtCore.QRect(20, 20, 167, 301))
            self.formGroupBox.setObjectName("formGroupBox")
            self.formLayout = QtWidgets.QFormLayout(self.formGroupBox)
            self.formLayout.setContentsMargins(10, 10, 10, 10)
            self.formLayout.setSpacing(10)
            self.formLayout.setObjectName("formLayout")
            self.s1__lb_1 = QtWidgets.QLabel(self.formGroupBox)
            self.s1__lb_1.setObjectName("s1__lb_1")
            self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.s1__lb_1)
            self.s1__box_1 = QtWidgets.QPushButton(self.formGroupBox)
            self.s1__box_1.setAutoRepeatInterval(100)
            self.s1__box_1.setDefault(True)
            self.s1__box_1.setObjectName("s1__box_1")
            self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.s1__box_1)
            self.s1__lb_2 = QtWidgets.QLabel(self.formGroupBox)
            self.s1__lb_2.setObjectName("s1__lb_2")
            self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.s1__lb_2)
            self.s1__box_2 = QtWidgets.QComboBox(self.formGroupBox)
            self.s1__box_2.setObjectName("s1__box_2")
            self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.s1__box_2)
            self.s1__lb_3 = QtWidgets.QLabel(self.formGroupBox)
            self.s1__lb_3.setObjectName("s1__lb_3")
            self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.s1__lb_3)
            self.s1__box_3 = QtWidgets.QComboBox(self.formGroupBox)
            self.s1__box_3.setObjectName("s1__box_3")
            self.s1__box_3.addItem("")
            self.s1__box_3.addItem("")
            self.s1__box_3.addItem("")
            self.s1__box_3.addItem("")
            self.s1__box_3.addItem("")
            self.s1__box_3.addItem("")
            self.s1__box_3.addItem("")
            self.s1__box_3.addItem("")
            self.s1__box_3.addItem("")
            self.s1__box_3.addItem("")
            self.s1__box_3.addItem("")
            self.s1__box_3.addItem("")
            self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.s1__box_3)
            self.s1__lb_4 = QtWidgets.QLabel(self.formGroupBox)
            self.s1__lb_4.setObjectName("s1__lb_4")
            self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.s1__lb_4)
            self.s1__box_4 = QtWidgets.QComboBox(self.formGroupBox)
            self.s1__box_4.setObjectName("s1__box_4")
            self.s1__box_4.addItem("")
            self.s1__box_4.addItem("")
            self.s1__box_4.addItem("")
            self.s1__box_4.addItem("")
            self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.s1__box_4)
            self.s1__lb_5 = QtWidgets.QLabel(self.formGroupBox)
            self.s1__lb_5.setObjectName("s1__lb_5")
            self.formLayout.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.s1__lb_5)
            self.s1__box_5 = QtWidgets.QComboBox(self.formGroupBox)
            self.s1__box_5.setObjectName("s1__box_5")
            self.s1__box_5.addItem("")
            self.formLayout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.s1__box_5)
            self.open_button = QtWidgets.QPushButton(self.formGroupBox)
            self.open_button.setObjectName("open_button")
            self.formLayout.setWidget(7, QtWidgets.QFormLayout.SpanningRole, self.open_button)
            self.close_button = QtWidgets.QPushButton(self.formGroupBox)
            self.close_button.setObjectName("close_button")
            self.formLayout.setWidget(8, QtWidgets.QFormLayout.SpanningRole, self.close_button)
            self.s1__lb_6 = QtWidgets.QLabel(self.formGroupBox)
            self.s1__lb_6.setObjectName("s1__lb_6")
            self.formLayout.setWidget(6, QtWidgets.QFormLayout.LabelRole, self.s1__lb_6)
            self.s1__box_6 = QtWidgets.QComboBox(self.formGroupBox)
            self.s1__box_6.setObjectName("s1__box_6")
            self.s1__box_6.addItem("")
            self.formLayout.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.s1__box_6)
            self.state_label = QtWidgets.QLabel(self.formGroupBox)
            self.state_label.setText("")
            self.state_label.setTextFormat(QtCore.Qt.AutoText)
            self.state_label.setScaledContents(True)
            self.state_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
            self.state_label.setObjectName("state_label")
            self.formLayout.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.state_label)
            self.verticalGroupBox = QtWidgets.QGroupBox(Form)
            self.verticalGroupBox.setGeometry(QtCore.QRect(210, 20, 401, 241))
            self.verticalGroupBox.setObjectName("verticalGroupBox")
            self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalGroupBox)
            self.verticalLayout.setContentsMargins(10, 10, 10, 10)
            self.verticalLayout.setObjectName("verticalLayout")
            self.s2__receive_text = QtWidgets.QTextBrowser(self.verticalGroupBox)
            self.s2__receive_text.setObjectName("s2__receive_text")
            self.verticalLayout.addWidget(self.s2__receive_text)
            self.verticalGroupBox_2 = QtWidgets.QGroupBox(Form)
            self.verticalGroupBox_2.setGeometry(QtCore.QRect(210, 280, 401, 101))
            self.verticalGroupBox_2.setObjectName("verticalGroupBox_2")
            self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.verticalGroupBox_2)
            self.verticalLayout_2.setContentsMargins(10, 10, 10, 10)
            self.verticalLayout_2.setObjectName("verticalLayout_2")
            self.s3__send_text = QtWidgets.QTextEdit(self.verticalGroupBox_2)
            self.s3__send_text.setObjectName("s3__send_text")
            self.verticalLayout_2.addWidget(self.s3__send_text)
            self.s3__send_button = QtWidgets.QPushButton(Form)
            self.s3__send_button.setGeometry(QtCore.QRect(620, 310, 61, 31))
            self.s3__send_button.setObjectName("s3__send_button")
            self.s3__clear_button = QtWidgets.QPushButton(Form)
            self.s3__clear_button.setGeometry(QtCore.QRect(620, 350, 61, 31))
            self.s3__clear_button.setObjectName("s3__clear_button")
            self.formGroupBox1 = QtWidgets.QGroupBox(Form)
            self.formGroupBox1.setGeometry(QtCore.QRect(20, 340, 171, 101))
            self.formGroupBox1.setObjectName("formGroupBox1")
            self.formLayout_2 = QtWidgets.QFormLayout(self.formGroupBox1)
            self.formLayout_2.setContentsMargins(10, 10, 10, 10)
            self.formLayout_2.setSpacing(10)
            self.formLayout_2.setObjectName("formLayout_2")
            self.label = QtWidgets.QLabel(self.formGroupBox1)
            self.label.setObjectName("label")
            self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label)
            self.label_2 = QtWidgets.QLabel(self.formGroupBox1)
            self.label_2.setObjectName("label_2")
            self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_2)
            self.lineEdit = QtWidgets.QLineEdit(self.formGroupBox1)
            self.lineEdit.setObjectName("lineEdit")
            self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.lineEdit)
            self.lineEdit_2 = QtWidgets.QLineEdit(self.formGroupBox1)
            self.lineEdit_2.setObjectName("lineEdit_2")
            self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lineEdit_2)
            self.hex_send = QtWidgets.QCheckBox(Form)
            self.hex_send.setGeometry(QtCore.QRect(620, 280, 71, 16))
            self.hex_send.setObjectName("hex_send")
            self.hex_receive = QtWidgets.QCheckBox(Form)
            self.hex_receive.setGeometry(QtCore.QRect(620, 40, 71, 16))
            self.hex_receive.setObjectName("hex_receive")
            self.s2__clear_button = QtWidgets.QPushButton(Form)
            self.s2__clear_button.setGeometry(QtCore.QRect(620, 80, 61, 31))
            self.s2__clear_button.setObjectName("s2__clear_button")
            self.timer_send_cb = QtWidgets.QCheckBox(Form)
            self.timer_send_cb.setGeometry(QtCore.QRect(260, 390, 71, 16))
            self.timer_send_cb.setObjectName("timer_send_cb")
            self.lineEdit_3 = QtWidgets.QLineEdit(Form)
            self.lineEdit_3.setGeometry(QtCore.QRect(350, 390, 61, 20))
            self.lineEdit_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
            self.lineEdit_3.setObjectName("lineEdit_3")
            self.dw = QtWidgets.QLabel(Form)
            self.dw.setGeometry(QtCore.QRect(420, 390, 54, 20))
            self.dw.setObjectName("dw")
            self.verticalGroupBox.raise_()
            self.verticalGroupBox_2.raise_()
            self.formGroupBox.raise_()
            self.s3__send_button.raise_()
            self.s3__clear_button.raise_()
            self.formGroupBox.raise_()
            self.hex_send.raise_()
            self.hex_receive.raise_()
            self.s2__clear_button.raise_()
            self.timer_send_cb.raise_()
            self.lineEdit_3.raise_()
            self.dw.raise_()
    
            self.retranslateUi(Form)
            QtCore.QMetaObject.connectSlotsByName(Form)
    
        def retranslateUi(self, Form):
            _translate = QtCore.QCoreApplication.translate
            Form.setWindowTitle(_translate("Form", "Form"))
            self.formGroupBox.setTitle(_translate("Form", "串口设置"))
            self.s1__lb_1.setText(_translate("Form", "串口检测:"))
            self.s1__box_1.setText(_translate("Form", "检测串口"))
            self.s1__lb_2.setText(_translate("Form", "串口选择:"))
            self.s1__lb_3.setText(_translate("Form", "波特率:"))
            self.s1__box_3.setItemText(0, _translate("Form", "115200"))
            self.s1__box_3.setItemText(1, _translate("Form", "2400"))
            self.s1__box_3.setItemText(2, _translate("Form", "4800"))
            self.s1__box_3.setItemText(3, _translate("Form", "9600"))
            self.s1__box_3.setItemText(4, _translate("Form", "14400"))
            self.s1__box_3.setItemText(5, _translate("Form", "19200"))
            self.s1__box_3.setItemText(6, _translate("Form", "38400"))
            self.s1__box_3.setItemText(7, _translate("Form", "57600"))
            self.s1__box_3.setItemText(8, _translate("Form", "76800"))
            self.s1__box_3.setItemText(9, _translate("Form", "12800"))
            self.s1__box_3.setItemText(10, _translate("Form", "230400"))
            self.s1__box_3.setItemText(11, _translate("Form", "460800"))
            self.s1__lb_4.setText(_translate("Form", "数据位:"))
            self.s1__box_4.setItemText(0, _translate("Form", "8"))
            self.s1__box_4.setItemText(1, _translate("Form", "7"))
            self.s1__box_4.setItemText(2, _translate("Form", "6"))
            self.s1__box_4.setItemText(3, _translate("Form", "5"))
            self.s1__lb_5.setText(_translate("Form", "校验位:"))
            self.s1__box_5.setItemText(0, _translate("Form", "N"))
            self.open_button.setText(_translate("Form", "打开串口"))
            self.close_button.setText(_translate("Form", "关闭串口"))
            self.s1__lb_6.setText(_translate("Form", "停止位:"))
            self.s1__box_6.setItemText(0, _translate("Form", "1"))
            self.verticalGroupBox.setTitle(_translate("Form", "接受区"))
            self.verticalGroupBox_2.setTitle(_translate("Form", "发送区"))
            self.s3__send_text.setHtml(_translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
    "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
    "p, li { white-space: pre-wrap; }\n"
    "</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
    "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">123456</p></body></html>"))
            self.s3__send_button.setText(_translate("Form", "发送"))
            self.s3__clear_button.setText(_translate("Form", "清除"))
            self.formGroupBox1.setTitle(_translate("Form", "串口状态"))
            self.label.setText(_translate("Form", "已接收:"))
            self.label_2.setText(_translate("Form", "已发送:"))
            self.hex_send.setText(_translate("Form", "Hex发送"))
            self.hex_receive.setText(_translate("Form", "Hex接收"))
            self.s2__clear_button.setText(_translate("Form", "清除"))
            self.timer_send_cb.setText(_translate("Form", "定时发送"))
            self.lineEdit_3.setText(_translate("Form", "1000"))
            self.dw.setText(_translate("Form", "ms/次"))
    
    
    展开全文
  •  初学STM32时,是通过串口1把Hex文件下载进STM32的,需要一个串口模块,而且还要设置BOOT0和BOOT1电平,然后通过FlyMcu软件进行下载,这也是一种不错的方法,这里我要介绍的是使用JLink调试器和Keil MDK-ARM来下载...
  • 1、自动检测串口数,并列举出来,如无串口则显示1-16的串口 2、发送区增加右键功能,可选择清除;点击、回车发送,双击可发送文件 3、点击扩展按键,可以循环发送16组不能的字符串数据 4、接收超过20万行自动保存...
  • 上一篇文章介绍了使用Keil下载单独的Hex文件到单片机内,本篇文章介绍,如何使用SEGGER官方软件JFlash来进行程序的下载,支持Hex和Bin文件。 JFlash的下载和安装 首先,安装JFlash软件,安装完成后,会默认安装JLink...
  • Qt串口工具实现

    2021-06-07 19:14:15
    使用QtSerialPort实现串口收发数据,具体代码如下: 头文件: #ifdef WIN32 #pragma execution_character_set("utf-8") #endif #ifndef SERIALPORTTOOLVIEW_H #define SERIALPORTTOOLVIEW_H #include <...
  • STM32笔记--使用ST-Link下载hex文件

    千次阅读 2020-05-09 21:46:15
    Link下载程序时都是在MDK编译器中下载源代码,但ST-Link其实也可以直接下载hex文件,STM32官方就有提供一个ST-Link下载程序的工具STM32 ST-LINK Utility,只需三步,就能将hex文件下载到单片机中,相比使用串口下载...
  • 呆萌教你:使用Python 开发串口工具 5. 完善串口工具界面的触发函数(工具栏、状态栏、RadioButton、QSpinBox的设置)????1. 获取发送文本框的内容????2. 工具栏的设置????3. 状态栏的设置????4. RadioButton的设置?...
  • HEX文件合并工具

    2021-02-05 22:25:58
    由于基本现有开发产品均用到了IAP功能,即BOOT程序加APP程序总和。其中BOOT程序,不光只用来做程序...因此,找到了一个比较好的HEX文件合并工具,还可以生成BIN文件。 软件源码开源,非本人所编写,github地址为:...
  • linux串口工具miniterm的使用

    千次阅读 2019-09-19 00:04:25
    linux串口工具miniterm的使用 将(usb转)串口插入主机,/dev目录下会显示新设备,如下图所示为ttyUSB0 执行miniterm.py /dev/ttyUSB0 74880,指定对应串口并设置波特率 如上图所示,提示打开串口失败。 原因是对于该...
  • 串口工具分享 写的一个小串口工具,最近进行了一些优化,分享给大家 可以是这个样子 这个样子 这个样子 有没有一点小心动啊 可以在我的百度云下载哦,链接:https://pan.baidu.com/s/1hmsvrGJTxQc6wnbt8lqVng 提取...
  • 串口调试工具

    2018-05-16 17:30:33
    串口调试工具, 支持命令传输和循环反馈信息读取,支持hex和dec
  • STM32 使用c#编写的bootloader升级工具,适合 做串口iap,能够读取解析hex文件,并且通过串口将程序下载到单片机stm32/51等。附源代码以及通讯协议,下位机源代码(STM32cubeIDE工程),也可以定制开发。也是适合初学...
  • C# 串口工具开发

    2021-09-07 17:00:38
    在单片机项目开发中,上位机也是一个很重要的部分,主要用于数据显示(波形、温度等)、用户控制(LED,继电器等),下位机(单片机)与 上位机之间要进行数据通信的两种方式都是基于串口的: USB转串口 —— ...
  • Android 串口测试工具

    2020-11-20 10:13:03
    串口测试工具(Android版本),用于调试串口,可发送接收串口数据,支持Hex和ASCII格式数据。
  • 超级单片机工具,RT计算、LED编码、色环电阻、串口调试、串口监视、HEX/BIN to text

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,579
精华内容 1,831
关键字:

下载hex的串口工具