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文件处理工具
本文主要介绍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博文,感谢博主分享;
说明:边学边做,根据所学知识能够独立完成所需功能即可。
软件功能
界面
功能
校验字节数:每隔多少字节,进行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文件,获取文件信息,然后计算需要处理的包数及最后一包实际字节个数。
首先,对每包数据进行crc校验(除最后一包),然后写入到文件
处理最后一包数据,然后写入到文件
最后生成处理后的bin文件,通过对比可以看到,每隔512字节增加了2字节的crc16校验数据。
文章来源:https://uudwc.com/A/gk60z
总结
qt对bin文件处理,简单来说:读取bin文件–>分包计算crc–>追加保存到文件。文章来源地址https://uudwc.com/A/gk60z