精华内容
下载资源
问答
  • python通过串口发送bin文件

    千次阅读 2020-10-28 14:34:54
    例如要发送如下bin文件,打开查看其内容如下 Pycharm中输入以下python代码 import serial try: ser = serial.Serial("COM4", 115200, timeout=0.5) if ser.is_open: print("COM4" + "打开成功") with open...

    例如要发送如下bin文件,打开查看其内容如下

    Pycharm中输入以下python代码

    import serial
    
    try:
        ser = serial.Serial("COM4", 115200, timeout=0.5)
        if ser.is_open:
            print("COM4" + "打开成功")
            with open('F:/Python/Demo.bin', 'rb') as f:
                a = f.read()
            print("正在发送bin文件")
            count = ser.write(a)
            print("发送完成,共发送字节数:", count)
    
    except Exception as e:
        print("---异常---:", e)

    运行上述代码

    通过另一个串口利用串口助手接收python串口发送的数据,可见接收到的数据和bin文件中的数据一模一样

    如果没有找到串口则提示异常信息

    原创作品,如需转载,请注明出处!

    https://blog.csdn.net/xiaowenshen/article/details/109332042

     

     

    展开全文
  • C#串口下载烧写bin文件
  • Qt利用串口读取bin文件,并采用定时器把bin文件发送出去
  • 自己写的第一个qt界面程序,有很多不足。希望能给需要的人一些小思路
  • 利用串口发送文件

    2013-02-27 09:18:36
    C#语言开发,实现串口发送文件,和芯片程序的下载。
  • QT 实现的串口收发 exe 文件,实现了基本的配置和串口的收发 exe 文件
  • 1 C-kermit简介:C-kermit是一个串口传工具。可以传送文件。 用于pc串口通信。C-kermit是一款集成了网络通信、串口通信的工具,它有如下多种功能: 1.支持kermit文件传输协议 2.自定义了一种脚本语言,它强大而...

    1 C-kermit简介:

    C-kermit是一个串口传工具。可以传送文件。 用于pc串口通信。


    C-kermit是一款集成了网络通信、串口通信的工具,它有如下多种功能: 

    1.支持kermit文件传输协议 

    2.自定义了一种脚本语言,它强大而易于使用,可用于自动化工作 

    3.无论是网络通信,还是串口通信,操作是一致的,并支持多种硬件、软件平台 

    4.有安全认证、加密功能 

    5.内建FTP、HTTP客户端功能及ssh接口 

    6.支持字符集转换 


    2 C-kermit安装、配置

    安装命令:sudo apt-get install ckermit 




    配置:

    在 /home/wooya 目录($HOME主目录)下新建. kermrc配置文件,内容如下


    set line /dev/ttyS0     //注意这里的设备是ttyS0 我们的可能是其它如:ttyUSB0
    set speed 115200     
    set carrier-watch off 
    set handshake none 
    set flow-control none 
    robust 
    set file type bin 
    set file name lit 
    set rec  pack 1000 
    set send pack 1000 
    set window 5 
    这里,kermit在启动时会查找~/.kermrc文件,调用里面的命令来初始化kermit。只要将你所需的命令写到~/.kermrc文件里,启动后就不用手动敲这些命令配置了。 


    3 C-kermit的使用


    命令模式:sudo kermit 
    非命令模式:sudo kermit -c
    退出:命令模式下输入 exit

    命令模式进入非命令模式:输入c 或 connect 按回车
    非命令模式进入命令模式:先按 ctrl+\  再按 c

    4 用loadb命令发送bin文件到开发板

    在非命令模式下输入:loadb 0x30008000
    先按 ctrl+\  再按 c,使之从非命令模式进入命令模式
    输入:send+要发送的bin文件,等待直到传输完成
    输入:c 回车  ,进入非命令模式
    可输入:go 0x82000000   ,运行传入的bin文件;也可写flash,可以用此方式烧写kernal和文件系统。





    hi35xx  spi flash烧写:

    hisilicon#sf probe 0 /*SPI Flash进行初始化设置*/
    hisilicon#sf erase 0x100000 0x300000 /*
    擦除Flash*/
    hisilicon#sf write 0x82000000 0x100000 0x300000 /*
    将内核写入到SPI Flash
    移地址为
    0x100000位置*/ 

    hisilicon#sf probe 0 /*SPI Flash进行初始化设置*/
    hisilicon#sf erase 0x500000 0x900000 /*
    擦除Flash*/
    hisilicon#sf write 0x82000000 0x500000 0x900000 /*
    将文件系统写入到SPI
    Flash
    偏移地址为0x500000位置*/ 


    我自己的hi3518e 启动参数:

    hisilicon # printenv  
    bootdelay=1  
    baudrate=115200  
    ethaddr=00:00:23:34:45:66  
    ipaddr=192.168.1.10  
    serverip=192.168.1.2  
    netmask=255.255.255.0  
    bootfile=uImage  
    bootcmd=sf probe 0;sf read 0x82000000 0x100000 0x400000;bootm 0x82000000  
    bootargs=mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),9M(rootfs)  
    stdin=serial  
    stdout=serial  
    stderr=serial  
    verify=n  
    ver=U-Boot 2010.06 (Jun 01 2017 - 02:38:54)  
      
    Environment size: 424/262140 bytes

    HI3518E用J-link烧写裸板fastboot u-boot流程

    :http://blog.csdn.net/lichangc/article/details/39478167


    展开全文
  • 串口发送文件

    2016-06-22 11:05:48
    3:发送文件功能; 4:取消发送功能; 5:取余计算功能; 6:窗口置顶功能; 7:打开网页功能; 调试时间不是很久,如果哪位发现BUG,欢迎到我的博客指正! http://blog.csdn.net/qq_23992597/article/details/51732691
  • Labview 编写的串口发送文件小程序

    热门讨论 2012-04-21 01:00:48
    Labview 编写的出串口发送文件小程序
  • 本例由《qt开发环境 - ...实现功能:打开.bin文件,显示文件内容  通过串口按固定字节大小发送文件  显示串口收到的内容 下面是源代码: 代码下载地址:http://download.csdn.net/download/zn2857/10194028 /*

    本例由《qt开发环境 - 简易二进制文件打开,串口自发自收》更改来。(由qt官方terminal demo 修改)

    实现功能:打开.bin文件,显示文件内容

              通过串口按固定字节大小发送文件

              显示串口收到的内容

    下面是源代码:

    代码下载地址:http://download.csdn.net/download/zn2857/10194028

    /****************************************************************************
    **
    ** Copyright (C) 2012 Denis Shienkov <denis.shienkov@gmail.com>
    ** Copyright (C) 2012 Laszlo Papp <lpapp@kde.org>
    ** Contact: https://www.qt.io/licensing/
    **
    ** This file is part of the QtSerialPort module of the Qt Toolkit.
    **
    ** $QT_BEGIN_LICENSE:BSD$
    ** Commercial License Usage
    ** Licensees holding valid commercial Qt licenses may use this file in
    ** accordance with the commercial license agreement provided with the
    ** Software or, alternatively, in accordance with the terms contained in
    ** a written agreement between you and The Qt Company. For licensing terms
    ** and conditions see https://www.qt.io/terms-conditions. For further
    ** information use the contact form at https://www.qt.io/contact-us.
    **
    ** BSD License Usage
    ** Alternatively, you may use this file under the terms of the BSD license
    ** as follows:
    **
    ** "Redistribution and use in source and binary forms, with or without
    ** modification, are permitted provided that the following conditions are
    ** met:
    **   * Redistributions of source code must retain the above copyright
    **     notice, this list of conditions and the following disclaimer.
    **   * Redistributions in binary form must reproduce the above copyright
    **     notice, this list of conditions and the following disclaimer in
    **     the documentation and/or other materials provided with the
    **     distribution.
    **   * Neither the name of The Qt Company Ltd nor the names of its
    **     contributors may be used to endorse or promote products derived
    **     from this software without specific prior written permission.
    **
    **
    ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
    **
    ** $QT_END_LICENSE$
    **
    ****************************************************************************/
    
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    //#include "console.h"
    #include "settingsdialog.h"
    
    #include <QMessageBox>
    #include <QLabel>
    #include <QtSerialPort/QSerialPort>
    
    #include <QFile>
    #include <QFileDialog>
    #include <QDir>
    #include <QTextStream>
    #include <QDataStream>
    #include <QTimer>
    
    
    #define APP_DISPLAY_SIZE 64
    
    //! [0]
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
    //! [0]
        ui->setupUi(this);
    //    console = new Console;
    //    console->setEnabled(false);
    //    setCentralWidget(console);
    //! [1]
        serial = new QSerialPort(this);
    //! [1]
        settings = new SettingsDialog;
    
        ui->actionConnect->setEnabled(true);
        ui->actionDisconnect->setEnabled(false);
        ui->actionQuit->setEnabled(true);
        ui->actionConfigure->setEnabled(true);
    
        status = new QLabel;
        ui->statusBar->addWidget(status);
    
        initActionsConnections();
    
        connect(serial, static_cast<void (QSerialPort::*)(QSerialPort::SerialPortError)>(&QSerialPort::error),
                this, &MainWindow::handleError);
    
    //! [2]
        connect(serial, &QSerialPort::readyRead, this, &MainWindow::readData);
    //! [2]
    //    connect(console, &Console::getData, this, &MainWindow::writeData);
    //! [3]
        timer = new QTimer(this);
        connect(timer,SIGNAL(timeout()),this,SLOT(timerTransDate()));
        ulNum = 0;
    //    timer->start(1000);
    //    setCentralWidget(MainWindow);
    }
    //! [3]
    
    MainWindow::~MainWindow()
    {
        delete settings;
        delete ui;
    }
    
    
    //! [4]
    void MainWindow::openSerialPort()
    {
        SettingsDialog::Settings p = settings->settings();
        serial->setPortName(p.name);
        serial->setBaudRate(p.baudRate);
        serial->setDataBits(p.dataBits);
        serial->setParity(p.parity);
        serial->setStopBits(p.stopBits);
        serial->setFlowControl(p.flowControl);
        if (serial->open(QIODevice::ReadWrite)) {
    //        console->setEnabled(true);
    //        console->setLocalEchoEnabled(p.localEchoEnabled);
            ui->actionConnect->setEnabled(false);
            ui->actionDisconnect->setEnabled(true);
            ui->actionConfigure->setEnabled(false);
            showStatusMessage(tr("Connected to %1 : %2, %3, %4, %5, %6")
                              .arg(p.name).arg(p.stringBaudRate).arg(p.stringDataBits)
                              .arg(p.stringParity).arg(p.stringStopBits).arg(p.stringFlowControl));
        } else {
            QMessageBox::critical(this, tr("Error"), serial->errorString());
    
            showStatusMessage(tr("Open error"));
        }
    }
    //! [4]
    
    //! [5]
    void MainWindow::closeSerialPort()
    {
        if (serial->isOpen())
            serial->close();
    //    console->setEnabled(false);
        ui->actionConnect->setEnabled(true);
        ui->actionDisconnect->setEnabled(false);
        ui->actionConfigure->setEnabled(true);
        showStatusMessage(tr("Disconnected"));
    }
    //! [5]
    
    void MainWindow::about()
    {
        QMessageBox::about(this, tr("About Simple Terminal"),
                           tr("The <b>Simple Terminal</b> example demonstrates how to "
                              "use the Qt Serial Port module in modern GUI applications "
                              "using Qt, with a menu bar, toolbars, and a status bar."));
    }
    
    //! [6]
    void MainWindow::writeData(const QByteArray &data)
    {
        serial->write(data);
    }
    //! [6]
    
    //! [7]
    void MainWindow::readData()
    {
    //    QByteArray data = serial->readAll();
    
    //    console->putData(data);
        QByteArray temp = serial->readAll();
        QString buf;
    
            if(!temp.isEmpty()){
                ui->textBrowser->setTextColor(Qt::black);
    //                if(chrReceive->isChecked()){
    //                    buf = temp;
    //                }else if(hexReceive->isChecked()){
                        for(int i = 0; i < temp.count(); i++){
                            QString s;
                            s.sprintf("%02X ", (unsigned char)temp.at(i));
                            buf += s;
                        }
    //                }
    //            ui->textBrowser->setText(ui->textBrowser->document()->toPlainText() + buf);
                ui->textBrowser->append(buf);
    
                QTextCursor cursor = ui->textBrowser->textCursor();
                cursor.movePosition(QTextCursor::End);
                ui->textBrowser->setTextCursor(cursor);
    
                ui->receivebyteLcdNumber->display(ui->receivebyteLcdNumber->value() + temp.size());
    //            ui->statusBar->showMessage(tr("成功读取%1字节数据").arg(temp.size()));
    
            }
    
    }
    //! [7]
    
    //! [8]
    void MainWindow::handleError(QSerialPort::SerialPortError error)
    {
        if (error == QSerialPort::ResourceError) {
            QMessageBox::critical(this, tr("Critical Error"), serial->errorString());
            closeSerialPort();
        }
    }
    //! [8]
    
    void MainWindow::initActionsConnections()
    {
        connect(ui->actionConnect, &QAction::triggered, this, &MainWindow::openSerialPort);
        connect(ui->actionDisconnect, &QAction::triggered, this, &MainWindow::closeSerialPort);
        connect(ui->actionQuit, &QAction::triggered, this, &MainWindow::close);
        connect(ui->actionConfigure, &QAction::triggered, settings, &SettingsDialog::show);
        connect(ui->actionClear, &QAction::triggered, this, &MainWindow::clearTextBrowser);
        connect(ui->actionAbout, &QAction::triggered, this, &MainWindow::about);
        connect(ui->actionAboutQt, &QAction::triggered, qApp, &QApplication::aboutQt);
    }
    
    void MainWindow::showStatusMessage(const QString &message)
    {
        status->setText(message);
    }
    
    void MainWindow::on_pushButton_clicked()
    {
        timer->start(500);
    }
    
    void MainWindow::clearTextBrowser()
    {
        ui->textBrowser->setText(NULL);
    }
    
    void MainWindow::on_openFileButton_clicked()
    {
        //get file name
        fileName = QFileDialog::getOpenFileName(this,"Open File",QDir::currentPath());
    //    qDebug()<< "fileName is" << fileName;
        ui->filePathLineEdit->setText (fileName);
        if(fileName.isEmpty())
        {
            QMessageBox::information(this,"Error Message", "Please Select a Text File");
            return;
        }
        QFileInfo *pcsfileInfo = new QFileInfo(fileName);
        binSize = pcsfileInfo->size ();
    
        QFile* file = new QFile;
        file->setFileName(fileName);
        bool ok = file->open(QIODevice::ReadOnly);
        if(ok)
        {
    //        QTextStream in(file);
    //        ui->textEdit->setText(in.readAll());//read all context from the file
        }
        else
        {
            QMessageBox::information(this,"Error Message", "File Open Error" + file->errorString());
            return;
        }
        QDataStream in(file);
        char * binByte = new char[binSize];
        in.setVersion (QDataStream::Qt_5_9);
    
        ui->statusBar->showMessage(tr("准备读取数据"));
        in.readRawData (binByte, binSize);      //读出文件到缓存
        ui->statusBar->showMessage(tr("读取数据完毕"));
    
        tempByte = new QByteArray(binByte, binSize);                //格式转换
    
        QString *tempStr = new QString(tempByte->toHex ().toUpper ());
    
        //显示文件内容
        qint8 cnt = 1;
        qint16 kcnt = 0;
        for(qint64 i = 2; i < tempStr->size ();)
        {
            tempStr->insert (i, ' ');//每个字节之间空一格
            i += 3;
            cnt++;
            if(cnt == 8)//每8个字节空2格
            {
                tempStr->insert (i, ' ');
                i += 1;
            }
            if(cnt == 16)//每16个字节空一格
            {
                cnt = 1;
                kcnt ++;
                if(kcnt == 64)//每64行,即1K数据,空一行
                {
                    kcnt = 0;
                    tempStr->insert (i, '\n');
                    i++;
                }
                tempStr->insert (i, '\n');
                i += 3;         //避免换行后开头一个空格,换行相当于从新插入
            }
    
        }
        ui->statusBar->showMessage(tr("准备显示"));
        ui->fileViewPlainTextEdit->insertPlainText (*tempStr);
        ui->statusBar->showMessage(tr("显示完毕"));
    
    //    timer->start(1000);
    //    serial->write(binByte,25);
        delete tempByte;
        delete[] binByte;
        delete tempStr;
    
        file->close ();
        delete file;
    }
    void MainWindow::timerTransDate()
    {
        qint16 temp = 0;            //剩余待传数据
        qint16 FileSendEndFg;
    
    
        QFile *binFile = new QFile(fileName);
        binFile->open (QIODevice::ReadOnly);
        binFile->seek (ulNum * 1024);
    
        QDataStream in(binFile);
        char * binByte = new char[binSize];
        in.setVersion (QDataStream::Qt_5_9);
    
        in.readRawData (binByte, binSize);      //读出文件到缓存
    
        char * binLitByte = new char[64];//bin缓存
        static int binfileseek = 0;
    
        if(binfileseek > binSize)
        {
            binfileseek = 0;
            timer->stop();
            return;
        }
        memcpy (binLitByte, binByte + binfileseek, 64);
        binfileseek += 64;
    
        temp = binSize - 1024*ulNum;
    
        serial->write(binLitByte,64);
    
        delete binByte;
    
    }
    


    展开全文
  • Qt5--串口发送文件

    千次阅读 热门讨论 2019-02-16 00:33:05
    创建一个串口工程 定义两个全局变量 QByteArray binByteArray; int dataLen=0; 打开文件 QString initialName; QString fileName = QFileDialog::getOpenFileName(this,tr("choose file"),initialName)...

    创建一个串口工程

    在这里插入图片描述

    定义两个全局变量

    QByteArray binByteArray;
    int        dataLen=0;
    

    打开文件

    QString initialName;
    QString fileName =
            QFileDialog::getOpenFileName(this,tr("choose file"),initialName);  //at the path:initialName ,user choose which file to upload
    fileName = QDir::toNativeSeparators(fileName);
    if(!fileName.isEmpty())
    {
        ui->textEdit->append(fileName);
        QFile file(fileName);
       ui->textEdit->append("\n");
       if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
           qDebug()<<"Can't open the file!"<<endl;
       }
     //  QDataStream in(&file);
    //   datalen = in.readRawData(dataBuf,10);
    //   serial->write(dataBuf,10);
       while(!file.atEnd())
       {
           //QByteArray buf = file.readLine(512);
           binByteArray.append(file.readLine(512));
       }
       dataLen = file.size();
       ui->textEdit->append(QString("%1").arg((dataLen)));
       ui->textEdit->append("\n");
       //ui->textEdit->append(binByteArray.toHex());
    
       file.close();
     }
    

    发送文件

    int length=0;
    length = sizeof(binByteArray)>>10;
    ui->textEdit->append(QString(length));
    
    serial->write(binByteArray);
    //serial->write(InsyncData,sizeof(InsyncData));
    //plainTextEdit->insertPlainText(binByteArray.toHex());
    ui->textEdit->append(tr("\n send OK \n"));
    
    展开全文
  • //通讯协议: 0x55,0xAA,datalen(2),total_packet(2),cur_packet...//每次发送的字节数 const static int PACKET_HEAD_SIZE = 10; //协议字节数 void MainWindow::sendBinFile(const QString& filePath) { QFile f
  • vc利用串口发送文件

    千次阅读 2016-06-22 11:01:50
    自己写的一个示例程序,功能有: 1:串口功能:打开关闭串口; 2:选择文件功能; 3:发送文件功能; 4:取消发送功能; 5:取余计算功能; 6:窗口置顶功能; 7:打开网页功能; 下面是应用示意图
  • 主要介绍了python如何读取bin文件并下发串口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • # coding:utf-8import time, serialfrom struct import *import binasciifile = open('E:\\1.bin', 'rb')i = 0while 1: c = file.read(1) # 将字节转换成16进制; ssss = str(binascii.b2a_hex(c))[2:-1] pr...
  • MFC 串口发送文件

    千次阅读 2015-10-23 15:41:33
    MFC 串口发送文件 以下代码在龚建伟的串口源码代码上修改而来! 因为龚建伟的串口源码发送文件错误,故作了下修改,可以发送文件了,希望可以帮助到需要的童鞋们! 经过调试,终于把这段代码给写好啦! 先通过...
  • STM32串口烧录BIN文件、字库文件【QT上位机】 项目已开源至GitHub,供大家一起学习...使用串口通讯进行发送规定的帧数据,上位机会将BIN文件数据分析打包成每一帧传送给下位机。 下位机,接受到数据后,进行ACK应答,程
  • STM32串口IAP源码,使用串口1,XMODEM传输协议,传输bin文件 适合高级STM32玩家 软件嵌入式开发
  • 我在做LPC1788 IAP升级,用串口发送bin文件,发送成功。但是程序不执行,比如说我写个小灯点亮的程序bin发给单片机,写入到flash了,就是没现象。是不是跳转程序有问题。我换了两个串口软件试的,请知道的大虾指点...
  • Ymodem烧写Bin文件

    2018-05-29 09:17:08
    自己写的一个简单的Ymodem协议,烧写Bin文件。亲测可行,一直在用。可根据需求进行修改。
  • 本代码使用Qt读取bin文件中的数据

    热门讨论 2011-08-21 22:15:14
    这是一个用Qt读取bin数据文件的代码。
  • C# WPF 串口发送程序

    万次阅读 2016-12-16 11:02:19
    关于串口通信,之前用MFC架构的时候做过一次,也写了文章如下: MFC RS232串口通信 最近的项目因为对于界面的美化要求高了很多,用MFC架构去美化界面是件要命的事,因此转而用了WPF架构。其中用到的串口通信部分...
  • LInux下串口传输文件

    千次阅读 2019-08-11 00:03:41
    最近在做一个项目,需要从串口传输文件到设备上,自己瞎折腾写了一套私有协议,启动传输-> 传输固件 -> 校验固件, 整套流程跑下来,挺麻烦的,结果今晚吃饭跟徐总一交流,用rz直接搞定啊,干嘛非得自己写,...
  • c#用串口传输二进制文件 xmodem协议

    千次阅读 2019-06-19 10:32:16
    //串口发送文件结束的标记  //string return_data = ""; //返回值  Send_Times = 0; //重发次数  while (done)  {  Thread.Sleep(10);  Per_Sec_Count++;  if (Per_Sec_Count > MAX_WAIT_C_SEC * ...
  • 1、串口发送、接收数据。 2、可以文件发送。 3、可以文本/16进制转换。 4、可以设置自动发送。
  • 实现效果:Python端发送txt文件里的数据 串口助手显示接收到的数据 操作步骤如下: 1、先安装Python的串口库pyserial,安装方法有很多种,以下的适用我的win10 64位。 将你电脑安装的Python程序目录放入系统...
  • IAP是应用编程,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级,后续产品发布后,更新程序我只需要把.bin文件通过串口发送给芯片就可以执行更 新,很方便产品的维护工作。对于...
  • ARM 开发板嵌入式linux系统与主机PC通过串口传输文件本来以为按以下两篇文章就可以几步轻松搞定这个问题,没想到遇到两个小麻烦:1,我用的xp虚拟机下redhat9.0做主机,按照下面第一篇文章,我在Makefile中把CC=gcc...
  • 编译好的lsz工具,可执行文件,直接复制到linux开发板上加可执行权限即可运行,用于linux开发板直接通过串口上传文件到主机电脑,实测有效
  • 作者:zzssdd2 ...本章功能主要包含两个方面,一是通过串口发送选定的文本文件,二是将接收的数据保存为本地文本文件。最后还有对《QT串口助手(三):数据接收》章节内容进行一个补充扩展。 2.1、文件打开.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,267
精华内容 3,306
关键字:

串口发送bin文件