stm32 esp8266 ota升级-qt bin文件处理工具

stm32 esp8266 ota系列文章:
stm32 esp8266 ota-快速搭建web服务器之docker安装openresty
stm32 esp8266 ota升级-tcp模拟http
stm32 esp8266 ota升级-hex合并-烧录-bin生成
stm32 esp8266 ota升级-qt bin文件处理工具
stm32 esp8266 ota升级-自建mqtt和文件服务器动态AB面方式
stm32 esp8266 ota升级-自建mqtt和文件服务器全量升级

stm32 esp8266 ota升级-qt bin文件处理工具

文章目录

  • stm32 esp8266 ota升级-qt bin文件处理工具
    • qt安装
    • qt使用
    • 软件功能
      • 界面
      • 功能
      • 主要实现
    • 总结

本文主要介绍qt实现对bin文件每隔固定字节插入crc校验,进而用于后期ota升级。无有具体OTA代码讲解!!!

qt安装

请参考https://blog.csdn.net/weixin_46386047/article/details/125268144 博文,感谢博主分享;

qt使用

请参考https://xcc-2022.blog.csdn.net/article/details/127611678?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-127611678-blog-120595809.pc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-127611678-blog-120595809.pc_relevant_recovery_v2&utm_relevant_index=6博文,感谢博主分享;

说明:边学边做,根据所学知识能够独立完成所需功能即可。

软件功能

界面

stm32 esp8266 ota升级-qt bin文件处理工具_第1张图片

功能

校验字节数:每隔多少字节,进行crc校验,并将crc校验值插入其后。

校验算法:使用crc进行校验,支持CRC_8_MAXIM,CRC_16_MODBUS和CRC_32三种,默认CRC_16_MODBUS。

原文件:待处理的bin文件。

目标文件:crc校验插值处理后保存的文件。

生成 -> 点击进行crc校验处理,并生成校验文件。

主要实现

获取字节数,算法,文件路径

  // 获取处理的每包字节数
  qint32 package_size = ui->crcByteEdit->text().toInt();
  // 获取文件路径
  QString readfilePath = ui->srcEdit->text();
  // 文件保存路径
  QString writefilePath = ui->destEdit->text();
  // crc校验算法
  QString comboBox_crc = ui->comboBox_crc->currentText();
  qint8 comBoxIndex = ui->comboBox_crc->currentIndex();

读取bin文件,获取文件信息,然后计算需要处理的包数及最后一包实际字节个数。

stm32 esp8266 ota升级-qt bin文件处理工具_第2张图片

首先,对每包数据进行crc校验(除最后一包),然后写入到文件
stm32 esp8266 ota升级-qt bin文件处理工具_第3张图片

处理最后一包数据,然后写入到文件

stm32 esp8266 ota升级-qt bin文件处理工具_第4张图片

最后生成处理后的bin文件,通过对比可以看到,每隔512字节增加了2字节的crc16校验数据。

总结

qt对bin文件处理,简单来说:读取bin文件–>分包计算crc–>追加保存到文件。

你可能感兴趣的:(ota,qt,ui,开发语言)