【OTA】STM32新能源汽车OTA技术ymodem协议PC串口升级过程

【OTA】STM32新能源汽车OTA技术ymodem协议PC串口升级过程

文章目录

  • 前言
  • 一、实验工具
    • 1.串口USB线——烧录APP2生成的BIN文件
    • 2.STLINK——烧录BOOT代码和APP1代码
    • 3.烧录工具——将BIN文件烧录到单片机中
    • 4.FLYMCU——清除芯片FLASH
  • 二、硬件绘制
    • 1.原理图
    • 2.PCB
  • 三、软件配置
    • 1.BOOT代码
    • 2.APP1代码
    • 3.APP2代码
  • 四、实验结果
    • 1.烧录BOOT程序
    • 2.烧录APP1程序
    • 3.串口通过Ymodem协议bin烧录APP2程序
  • 五、参考文章
  • 总结


前言

【OTA】如何用STM32实现OTA升级?

在这里插入图片描述
请添加图片描述

提示:以下是本篇文章正文内容,下面案例可供参考

一、实验工具

1.串口USB线——烧录APP2生成的BIN文件

2.STLINK——烧录BOOT代码和APP1代码

3.烧录工具——将BIN文件烧录到单片机中

4.FLYMCU——清除芯片FLASH

在这里插入图片描述

二、硬件绘制

1.原理图

在这里插入图片描述

2.PCB

在这里插入图片描述
在这里插入图片描述

三、软件配置

1.BOOT代码

在这里插入图片描述
在这里插入图片描述

    //ͨ¹ýÅжÏÕ»¶¥µØÖ·ÖµÊÇ·ñÕýÈ·(ÊÇ·ñÔÚ0x2000 0000 - 0x2000 2000Ö®¼ä)À´ÅжÏÊÇ·ñÓ¦ÓóÌÐòÒѾ­ÏÂÔØÁËif (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000){BspTim2Close();__disable_irq() ; //Ìø×ªÖÁÓû§´úÂëJumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);Jump_To_Application = (pFunction) JumpAddress;//³õʼ»¯Óû§³ÌÐòµÄ¶ÑÕ»Ö¸Õë__set_MSP(*(__IO uint32_t*) ApplicationAddress);Jump_To_Application();SerialPutString("OK\r\n\n");}else{SerialPutString("no user Program\r\n\n");}

2.APP1代码

在这里插入图片描述
在这里插入图片描述

 int main()
{SCB->VTOR = FLASH_BASE | 0x3000;__enable_irq();LED_Init();delay_init();OLED_Init();KEY_Init();uart2_Init(115200);while(1){keynumber=KEY_Scan();		if(keynumber==1)	//B1°´ÏÂ{}if (keynumber==2)//ûÓа´ÏÂ{}LED1=1;			  // ÁÁdelay_ms(1000);LED1=0;			  // mieMenu_Display(Menu_Page,Level);u2_printf("{Waiting}$");	delay_ms(500);}
}

3.APP2代码

与其他步骤不同,这一步需要生成BIN文件,因此需注意!!不同芯片对应的编译器生成方式不同!
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

 int main()
{SCB->VTOR = FLASH_BASE | 0x3000;__enable_irq();LED_Init();delay_init();OLED_Init();KEY_Init();uart2_Init(115200);while(1){keynumber=KEY_Scan();		if(keynumber==1)	//B1°´ÏÂ{}if (keynumber==2)//ûÓа´ÏÂ{}LED1=1;			  // ÁÁdelay_ms(200);LED1=0;			  // mieMenu_Display(Menu_Page,Level);u2_printf("{OTA_OK}$");	}
}

四、实验结果

1.烧录BOOT程序

上位机蓝牙串口2打印,此时程序里没有APP1也没有APP2,没有进行外部OTA升级动作
请添加图片描述

2.烧录APP1程序

此时LED灯闪烁,OLED显示字符串,上位机由原来的BOOT引导程序的打印,跳转到APP1的应用程序,打印的数据也变为了waiting,表示APP1已烧录成功
请添加图片描述
请添加图片描述

3.串口通过Ymodem协议bin烧录APP2程序

选择APP2生成的BIN文件

先点开始下载,再按下核心板上的复位按键!!

绿色进度条加载完成之后,会显示下载成功

此时,LED闪烁频率比之前更快,OLED显示OTA_OK,上位机串口打印OTA_OK,说明APP2的应用程序已经通过Ymodem协议bin烧录成功

实验结束
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
请添加图片描述

请添加图片描述

五、参考文章

STM32程序的常用的两种烧录方式
ARM 代码烧录方案与原理详解 — SWD/JTAG + Bootloader + OTA (ICP + ISP + IAP)

总结

本文仅仅简单介绍了【OTA】STM32新能源汽车OTA技术ymodem协议PC串口升级过程方面,评论区欢迎讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/814120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Github 2024-04-13 开源项目日报 Top9

根据Github Trendings的统计,今日(2024-04-13统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目2C++项目2Jupyter Notebook项目2TypeScript项目1Cuda项目1非开发语言项目1GoogleTest - Google测试和模拟框架 创建周期:3181 天开发…

订单状态及其转换

目录 新建状态(Created)/待处理(Pending) 待支付(Pending Payment) 支付确认中(Payment Processing) 支付成功(Paid) 处理中(Processing&…

【2024-03-14】Spring中基于注解和AOP的结合实现(改造系统中的原有AOP鉴权)

业务需求 改造系统中的原先写的通过表达式拦截实现的鉴权功能。 原有逻辑 没有注释(啊啊啊啊)。 花费工时7.5小时。 步骤如下: 获取Header头参数。校验Header头的必要参数。通过Header中获取的参数,查询数据库入口表信息。通过…

【软件设计师知识点】三、数据结构

文章目录 逻辑结构与物理结构线性结构线性表顺序存储链式存储栈和队列栈和队列的基本性质循环队列双端队列栈与队列的应用串非线性结构数组矩阵树与二叉树树的基本术语二叉树的性质特殊二叉树<

gateway的授权思考

gateway的授权思考 1、看了一下若依的cloud项目。 登录&#xff1a;是传将authoration 这个token和当前用户绑定&#xff0c;然后放在redis.在登录的时候&#xff0c;也将相关的信息&#xff0c;比如校验了一下。不通过就不通过。 Override public OAuth2ClientDO validOAuth…

2024.4.14 Python爬虫复习Day02

day02_web服务器优化 注意: 需要提前把资料中source目录复制到当前项目中 1.回顾基本web服务器 # 1.导包(fastapi和uvicorn) from fastapi import FastAPI from fastapi import Response import uvicorn# 2.创建对象(注意:创建对象的时候,类名后加小括号()) api FastAPI()# 3…

jenkins通过pipeline部署springboot项目

部署方案&#xff1a; 1、springboot项目不保存部署的pipeline或dockerfile构建脚本等与部署相关的问文件&#xff0c;业务项目只需关心业务&#xff0c;能够正常构建为jar包即可 2、新建一个代码仓库&#xff0c;用于保存项目需要构建的Jenkinsfile 3、jenkins配置pipeline地址…

李廉洋;4.14黄金原油最新资讯,下周一盘走势分析及策略。

现货黄金昨日一度创下2430美元/盎司的历史新高&#xff0c;但随后一路回调至2344美元附近&#xff0c;较历史高位回落近百美元。分析师表示这是因为投资者在被视为过度的价格反弹中获利了结并离场所致。金融机构MKS PAMP SA的金属策略主管Nicky Shiels表示&#xff1a;“随着大…

基于Docker构建CI/CD工具链(六)使用Apifox进行自动化测试

添加测试接口 在Spring Boot Demo项目里实现一个简单的用户管理系统的后端功能。具体需求如下&#xff1a; 实现了一个RESTful API&#xff0c;提供了以下两个接口 &#xff1a; POST请求 /users&#xff1a;用于创建新的用户。GET请求 /users&#xff1a;用于获取所有用户的列…

计算机网络技术-RIP、0SPF和BGP协议的工作原理和应用

目录 RIP (Routing Information Protocolv&#xff09;路由信息协议OSPF(Open Shortest Path First) 开放式最短路径优先BGP( Border Gateway Protocol)边界网关协议 RIP (Routing Information Protocolv&#xff09;路由信息协议 RIP协议 是 TCP/IP环境中开发的第一个路由选择…

微信小程序相关

目录 一、WXML与HTML的异同 二、WXSS和CSS的异同 三、微信小程序主要目录和文件的作用 四、小程序的双向绑定和vue的异同 五、微信小程序有哪些传值(传递数据)方法 六、小程序的生命周期函数 APP生命周期 Page生命周期 Component生命周期 七、小程序的原理 八、小程…

STC89C52学习笔记(十一)

STC89C52学习笔记&#xff08;十一&#xff09; 综述&#xff1a;本文讲述了直流电机以及PWM调速。 一、直流电机 1、特点 &#xff08;1&#xff09;直流电机能将电能转化位机械能。 &#xff08;2&#xff09;直流电机有两个电极&#xff0c;电极正接时&#xff0c;电机…

【核心完整复现】基于目标级联法的微网群多主体分布式优化调度

1 主要内容 之前发布了华电学报的复现程序《基于目标级联法的微网群多主体分布式优化调度》&#xff0c;具体链接为【防骗版】基于目标级联法的微网群多主体分布式优化调度&#xff0c;虽然对模型及结果进行了复现&#xff0c;但是部分模型细节和参数并没有完全实现&#xff0…

【leetcode面试经典150题】47. 最长连续序列(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

2024长三角快递物流高质量创新发展论坛

2024长三角快递物流供应链与技术装备展览会&#xff08;杭州&#xff09; 2024年7月8-10日 | 杭州国际博览中心 指导单位&#xff1a;浙江省邮政管理局 中国快递协会 主办单位&#xff1a;浙江省快递行业协会 联合主办&#xff1a;上海市快递协会 江苏省快递协会 安徽省快递…

Ajax跨域请求

解决 AJAX 跨域请求的方法有几种。跨域请求指的是通过 AJAX 在不同域名、端口或协议下进行的请求&#xff0c;由于浏览器的安全策略限制&#xff0c;这些请求可能会被阻止。以下是一些常见的解决方法&#xff1a; 1、使用服务器代理 在你的服务器上创建一个代理&#xff0c;将…

ubuntu22下使用vscode调试redis7源码环境搭建

ubuntu22下使用vscode调试redis7源码环境搭建 ##vscode launch.json配置文件 {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息&#xff0c;请访问: https://go.microsoft.com/fwlink/?linkid830387"version": "0.2.0&…

【DL水记】循环神经网络RNN的前世今生,Transformer的崛起,Mamba模型

文章目录 RNN网络简介传统RNN网络结构RNN的分类 长-短期记忆网络 (LSTM)GRU网络横空出世的Transformer网络Self-AttentionVisionTransformer Mamba模型Reference: RNN网络简介 “当人类接触新事物时&#xff0c;他们不会从头开始思考。就像你在阅读这篇文章时&#xff0c;你会根…

目标检测笔记

目标检测笔记 one-stage和two-stage目标检测算法Two-Stage 目标检测算法One-Stage 目标检测算法既然Faster R-CNN使得候选区域生成和目标检测可以在同一个网络中端到端训练&#xff0c;为什么它还是属于Two-stage算法&#xff1f; 目标检测模型&#xff0c;训练中的正负样本是什…

根据ELK官网指引部署ELK- ECK-Elastic-​ Kibana​-Learn-ELK-(一)

**Attention: 1、You need open the ELK official website and step by step to deploy . 2、If you copy my command ,you must check them if it not match your environment . 一、official website Elastic documentation | Elastic Check there. 二、 ECK简介…