STM32 用cubemx移植IAP功能,实现串口升级

2023-11-19

感谢网上的大神,通过你们的文章我终于测试iap升级通过了,具体iap功能我白嫖一段:程序上电先进入 bootloader代码功能,后面通过bootloader跳转到用户的功能代码中;

使用的开发板芯片:STM32F103VET6,串口1升级,PA0升级程序,PA1跳转到APP功能;

生成BIN文件,根据实际路径修改:D:\StudyPack\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o $L@P.bin #L

1、程序bootloader工程搭建:

2、搭建app工程:

3、功能验证:

注意:

1、查看移植是否成功可以debug搭建好的bootloader工程,查看跳转函数是否可以打断点;

2、如果不知道bin文件如何下载,可以先下载bootloader文件,然后debug配置好的app文件,通过跳转按键,查看是否跳转到app程序中;

3、生成的bin文件一定要以16进制发送,否则升级会失败,注意bin本身就是16进制代码,例如:bin是 12,发送时应该为 0x12;

例程下载连接git:https://gitee.com/My_Bulb/wl-open-projects/tree/master/STM32%E4%BE%8B%E7%A8%8B/STM32F103VET6-IAP%E5%8D%87%E7%BA%A7

例程下载连接 链接:https://pan.baidu.com/s/1rAKQZbCdrwY1nuB8tLSz4A   提取码:bp55 

调试软件下载:链接:https://pan.baidu.com/s/1MFk3eEeJ-mR61NJopCMjyA   提取码:ljpg 
 

参考连接:https://blog.csdn.net/wzy15965343032/article/details/88545225

————————————————————————————————————————

一、IAP升级多段数据升级问题:

1、每帧长度512字节,最后一帧如果小于512字节,那么就按照字节长度写入 ;

2、数据等于512字节格式:数据(512byte)+地址(2byte)+ CRC16校验(2byte);

3、数据小于512字节格式:数据(XXXbyte)+地址(2byte)+ CRC16校验(2byte);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32 用cubemx移植IAP功能,实现串口升级 的相关文章

  • STM32的RTC时钟配置

    STM32的时钟可以使用内部RTC产生时钟日历 也可以使用外部芯片产生更为精确的时钟 如DS3231时钟芯片 本文介绍使用内部RTC产生时钟 RTC的时钟源有以下三种 HSE时钟除以128 LSE振荡器时钟
  • STM32 Keil:warning: #223-D: function "LED_Init" declared implicitly

    include stm32f10x h include led h int main LED Init while 1 GPIO SetBits GPIOD GPIO Pin 6 运行时警告 warning 223 D function L
  • STM32在Keil中芯片内部内存溢出

    STM32在Keil中芯片内部内存溢出 问题出现原因 在Keil5的Arm6 编译器中 STM32和SD ram 无法建立连接 导致编译不通过 解决方案 在全局变量只能设置外部RAM uint32 t trstsra 25000000 at
  • 【STM32学习】——定时器输出比较功能&PWM脉宽调制&通用/高级定时器输出比较通道&舵机/直流电机简介&PWM驱动呼吸灯/舵机/直流电机代码实操

    文章目录 前言 一 输出比较简介 二 PWM波形 三 输出比较通道 1 通用定时器 2 高级定时器 三 外设简介 1 舵机 2 直流电机 四 实操案例 1 PWM驱动LED呼吸灯 2 PWM驱动舵机 3 PWM驱动直流电机 总结 声明 学习
  • STM32学习心得(二)点亮LED灯

    STM32学习心得 二 点亮LED灯 在创建好工程模板后 就可以开始真正进入STM32的学习 手下那当然是试着点亮一个LED灯 首先在USER目录下创建一个空文件夹 并命名为bsp led bsp的意思是板级支持包 即该代码仅支持这块板子
  • 一种比较和谐的keil字体颜色设置

    找到keil路径下的global prop文件 将 C C Editor files下的部分改为如下的设置即可 本人的路径为D Keil v5 UV4 global prop 转载 https blog csdn net changyour
  • Keil5关于.h文件编译时遇见报错打不开时的解决方案

    添加路径即可
  • Stm32学习(七)外部中断

    1 外部中断 1 stm32的每一个IO都可以作为外部中断输入 2 stm32的中断控制器支持19个外部中断 事件请求 线0 15 对应外部IO口的输入中断 线16 连接到PVD输出 线17 连接到RTC闹钟事件 线18 连接到USB唤醒事
  • STM32+IAP方案的实现,IAP实现原理(详细解决说明)。

    此文档内容摘自 http www 51hei com stm32 4315 html 可参考文档 https blog csdn net gin love article details 82015646 基于STM32F103ZET6的U
  • warning: #223-D: function “strlen“ declared implicitly

    问题描述 在使用Keil5编译C文件时报错 warning 223 D function strlen declared implicitly 问题解决 在主函数中加入 extern size t strlen const char
  • 【stm32】跑马灯实验(报错未解决)

    采用推挽输出 若PE5 PD5输出低电平 两端形成电压差 LED点亮 若输出高电平 LED熄灭 导入工程模板文件 魔术棒新建文件夹 引用外设需要一个 h和 c文件 参考头文件和源文件的概念理解 头文件概念 five five的博客 CSDN
  • STM32学习记录2 1.26

    本人为纯纯初学者 水平非常低 写文章只是为了记录学习经历 并且输出文字加强理解与记忆 本文十分不严谨 只具参考作用 可能具有误导性 请谨慎阅读 如果各位dalao发现错误 欢迎友善的指正 建议与讨论 初入CSDN 对平台的规范不是很熟悉 还
  • 第四步:STM32F4 GPIO介绍

    1 0 STM32F407ZGT6引脚说明 STM32F407ZGT6 一共有7组IO口 每组IO口有16个IO 一共16X7 112个IO 外加2个PH0和PH1 一共114个IO口 GPIOA GPIOB GPIOG PH0 PH1 1
  • STM32学习之以太网介绍

    以太网简介 以太网 Ethernet 是互联网技术的一种 由于它是在组网技术中占的比例最高 很多人直接把以太网理解为互联网 以太网是指遵守IEEE802 3标准组成的局域网 由IEEE 802 3标准规定的主要是位于参考模型的物理层 PHY
  • STM32CubeMX—串口空闲中断+DMA接收

    一 实验说明 实验平台 STM32F103C8T6 实验内容 使用串口一空闲中断结合DMA 完成不定长数据接收 STM32的串口接收数据的方式 1 轮询接收 所谓轮询 就是在主函数中判断接收完成的标志位 举个不太恰当例子 就比如 此时你正在
  • 关于指针

    指针的一些基础知识 1 指针的定义 数据在内存中的地址也称为指针 如果一个变量存储了一份数据的指针 我们就称它为指针变量 在C语言中 允许用一个变量来存放指针 这种变量称为指针变量 指针变量的值就是某份数据的地址 这样的一份数据可以是数组
  • STM32自定义printf功能方法

    最近在朋友那学到了如何重定义STM32的printf类似函数 在这做下记录 调用C语言库函数文件具体是哪一个我忘记了 都加上吧 include
  • STM32控制42步进电机

    首先采用TB6600驱动外接12VDC电源 STM32选c8t6最小系统板 接线TB6600跟32接线有共阴级接法 把ENA DIR PUL 与32共地 也有共阳接法 把ENA DIR PUL 与32共地 这里选共阴级接法 判断42步进电机
  • KEIL仿真调试问题

    Q1 如何使用keil调试程序 A1 第一个表示跳转到下一个程序状态 第二个表示跳转到下一行 在主程序中的时候也是直接跳转到主程序的下一行 第三个表示 watch窗口可以查看变量的数值 Q2 使用MDK进行软件设计时没有使用ST官方的模板而
  • 【STM32学习】——串口通信协议&STM32-USART外设&数据帧/输入数据策略/波特率发生器&串口发送/接受实操

    文章目录 前言 一 串口通信 1 通信接口 2 串口通信 1 串口简介 2 串口硬件电路 3 串口软件部分 二 STM32的USART外设 1 USART简介 2 图示详解 三 细节问题 1 数据帧 2 输入数据策略 1 起始位侦测 2 数

随机推荐

  • java8 sum_lambda – Java 8流由3个字段组合并按sum和count聚合产生单行输出

    前提 class Product public String name public String category public String type public int id todo implement equals toStri
  • 智能合约-Solidity官方文档(1)

    写在前面 HiBlock区块链社区成立了翻译小组 以太坊中文社区 翻译区块链相关的技术文档及资料 本文为solidity官方文档翻译的第一部分 智能合约概述 特发布出来邀请solidity爱好者 开发者做公开的审校 您可以添加微信baoba
  • CSDN城市开发者联盟、C友会期待你的加入

    文章目录 课前小差 chatGPT CSDN中的持续学习 23年原力计划 C友会 CDC 如何关联本地的开发者 写在最后 课前小差 哈喽 大家好 我是几何心凉 这是一份全新的专栏 唯一得到CSDN王总的授权 来对于我们每周四的绿萝时间 直达
  • matlab 改变图片的长宽,Matlab怎么调整图片的大小,使它成为特定的长宽

    满意答案 whymhm 推荐于 2017 12 15 采纳率 53 等级 6 已帮助 2557人 一般而言 只需对目标图像进行图形句柄对象和坐标轴句柄对象进行操作即可 MATLAB中分别用gcf和gca表示 如 set gcf unit c
  • 转载:Beginning WF 4.0翻译——第一章(创建一个简单的工作流)续二

    关于工作流设计器 即使是很简单的工作流设计 你可能都很难去观看整个工作流图形 幸运的是 设计器有一些非常有用的工具区帮助我们在一个大的工作流上去工作 在设计器的右上角 点击Collapse 收缩 链接 工作流图会如图Figure1 20所示
  • C语言编写图形界面

    文章目录 环境 配置环境 使用库 基础概念 句柄 程序的入口 创建窗口 定义窗口类 注册窗口类 创建窗口 完整代码 运行效果 环境 使用的是VSCode MinGW 配置环境 VSCode写C语言的环境就不讲了 就说一下本篇文章编译的条件吧
  • 复习Ajax

    ajax简介 ajax全称为Asynchronous JavaScript And XML 就是异步的js和XML ajax不是一个新的编程语言 而是一种将现有的技术组合在一起使用的新方式 ajax特点 通过ajax可以在浏览器中向服务器发
  • ubuntu CMake中的set指令详解

    遇到一个CmakeList txt里面出现的一行 SET WORKSPACE DIR ENV HOME workspace 不知道这个 ENV HOME 到底指的什么路径 查阅了一些资料 也没能理解 只知道是cmake文件独有的路径赋值方式
  • mysql中or详细使用方式(Mysql之and和or混合使用) MES

    mysql中or详细使用方式 Mysql之and和or混合使用 在mysql中 经常会遇到这样的情况 在写条件语句where时 可能会同时有多个条件的 或 或者 与 但经常会达不到效果 经百度 本人发现一个where语句中同时出现条件的 与
  • 两台电脑通过网线共享文件

    参考博客 https blog csdn net qq 38161654 article details 80865241 谢谢 1 用一根网线把两台电脑连接起来 2 关闭两台电脑的防火墙 具体操作如下 Windows Defender 防
  • 华为OD机试 Java 实现【扑克牌大小】【牛客练习题 HJ88】,附详细解题思路

    一 题目描述 扑克牌游戏大家应该都比较熟悉了 一副牌由54张组成 含3 A 2各4张 小王1张 大王1张 牌面从小到大用如下字符和字符串表示 其中 小写joker表示小王 大写JOKER表示大王 3 4 5 6 7 8 9 10 J Q K
  • pytorch 卸载_windows安装cuda和cudnn以及pytorch+卸载

    查看cuda版本号 1 首先需要进入pytorch官网查看一下需要安装的pytorch版本适配的cuda版本号 网址如下所示 PyTorch pytorch org 如图所示 官网默认显示最新版本的PyTorch 点击下面的链接 可以安装一
  • HIT-ICS2022大作业(程序人生-Hello’s P2P)

    计算机系统 大作业 题 目 程序人生 Hello s P2P 专 业 计算机科学与技术 学 号 班 级 学 生 指 导 教 师 计算机科学与技术学院 2022年5月 摘 要 一个简单的Hello程序 其生命周期的整个P2P与020过程需要计
  • 阿里云,腾讯云,翼讯云等新买服务器磁盘不显示,挂载磁盘

    新买了一台翼讯的云主机 200G的硬盘 连接以后df h 查看磁盘只有系统盘 这时可以fdisk l 查看所有磁盘 这时应该进行磁盘三部曲 分区 格式化 挂载 分区 fdisk dev xvdb 这里的操作只分一个区 按n 按p 按1 按回
  • 剑指offer40

    class Solution public void FindNumsAppearOnce vector
  • 单片机编程:软件定时器

    单片机软件在没有RTOS的情况下 可使用 软件定时器 Timer 它的作用类似OS的线程 从而大大简化程序设计 提高代码质量 软件定时器 设置函数的基本参数 定时时长 回调函数 指针 序号 内容 1 定时时长 interval ms 2 回
  • MCMC抽样算法要点总结

    MCMC抽样算法 目的 给定一个已知的概率分布函数 p x 对随机变量 x 进行采样 使其满足 p x 概率分布 原理 一个马尔科夫链 对应的概率转移矩阵为 P 如果其具有 非周期性 且任意两个状态之间都是 连通 的 则不论初始的状态概率分
  • 1000以内的所有回文数

    02 程序的版权和版本声明部分 03 Copyright c 2013 烟台大学计算机学院 04 All rights reserved 05 文件名称 test cpp 06 作 者 马德鹏 07 完成日期 2013 年11月18日 08
  • JavaWebSSM-购物商城系统(idea可用)

    软件工程课程设计 毕业设计之购物商城系统代码 基于javaSSM的购物商城系统 基于Thymeleaf的商品销售平台代码 前言 本次文章主要是介绍蛋糕商城系统的功能 系统分为两个角色 管理员 用户 一 系统功能 1 1 开发环境 开发语言
  • STM32 用cubemx移植IAP功能,实现串口升级

    感谢网上的大神 通过你们的文章我终于测试iap升级通过了 具体iap功能我白嫖一段 程序上电先进入 bootloader代码功能 后面通过bootloader跳转到用户的功能代码中 使用的开发板芯片 STM32F103VET6 串口1升级