STM32 IAP 串口在线升级源码详解

发布者:Mengyun最新更新时间:2019-04-01 来源: eefocus关键字:STM32  IAP  串口  在线升级 手机看文章 扫描二维码
随时随地手机看文章

下面着重介绍下本人修改源代码部分,下载官方例程,本人使用的是STM32F103C8T6芯片,修改ROM空间大小0x2000,


XIUGAI在这里插入图片描述


修改宏定义


在这里插入图片描述


更改启动文件,更改方法:更改的文件鼠标右键弹出窗口->Options for File ‘statup_stm32f10x_md.s’… ->选中红框里的两项(‘√’第一次选中后为深黑色,再次点击为浅灰色,浅灰色时点击确认,其中的原因我也不太懂,你们可以试试)


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


修改堆栈地址0x8002000


在这里插入图片描述


至此,BootLoader修改完毕直接下载进去就可以了。


下面修改测试程序,我用STM32CUBEMAX直接配置了一个流水灯程序,修改程序:

主函数添加地址偏移:上面我们设置的地址大小为0x2000,所以地址偏量设置为0x2000


在这里插入图片描述


两种方法:


SCB->VTOR = FLASH_BASE | 0x2000;     

NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x2000);


由于本人在HAL库没有找到对应的函数,所以使用了第一种方法。

接下来修改配置,起始地址设置为0x8002000,大小我就随便设了个,够用又不超出rom范围。


在这里插入图片描述


生成.BIN文件配置,详细说明请参考博文

Keil MDK5生成 .bin文件的简单教程


在这里插入图片描述


编译过后就可以使用SecureCRT软件进行下载了:(安装部分资源包内有详细说明)


选择合适的参数,端口
在这里插入图片描述


配置好后点击下一步:芯片复位会接受到如下数据


在这里插入图片描述


按数字键盘1如下:


在这里插入图片描述

进行下载点击Transfer->Send Ymodem->打开下载的.bin文件,下载完成提示如下:

在这里插入图片描述


点击键盘数字3便可运行流水灯程序。官网例程本人研究的还不明白…

关键字:STM32  IAP  串口  在线升级 引用地址:STM32 IAP 串口在线升级源码详解

上一篇:STM32串口IAP实验详解
下一篇:STM32的硬件I2C实现及问题

推荐阅读最新更新时间:2024-03-16 16:26

STM32 ADC模拟看门狗应用演示过程
我们在做ADC应用时,有些场合需要精确测量出待测信号的数据,有时可能并不关心ADC结果多准确,只要满足某个范围即可,这时我们就可以考虑使用STM32ADC看门狗功能了。 STM32 ADC基本上都支持模拟看门狗功能,即ADC模块对被检测的模拟通道的转换结果基于硬件对其合法性、安全性进行监测。我们可以设置被监测通道的转换结果合法性检查的上下阈值,若结果处于阈值之外则视为异常,并可以触发中断。 尤其有些场合,我们可能使用到数个ADC通道,8个、10个甚至更多,同时程序还需要基于各通道的转换结果进行合法性或安全性监测,此时使用ADC模拟看门狗功能就很方便。我们可以先让模拟看门狗做第一步把关,只有出现异常数据时才去进一步检查确认。
[单片机]
<font color='red'>STM32</font> ADC模拟看门狗应用演示过程
STM32 IO口模拟串口通讯
前阵子,调项目时需要用到低波特率串口通讯(300的波特率),才发下发现在正常情况下(PCLK1时钟频率为72M,PCLK2时钟频率为36M):STM32的USART0的最低波特率只能设置到1200,;而USART1最低波特率只能设置到600。怎么设置STM32的600或以下的波特率呢?有两种方法:一种是改变外设时钟频率,而另一种方法就是使用IO口模拟串口通讯。今天就来讲讲,用IO口模拟串口通信! 1、串口传输协议 首先,必须要知道串口通讯时数据是怎样传输的?这里以异步传输字符为例子,如下图所示: 一般字符传输都采用:1位起始位,8位数据位,1位停止位,没有校验位 的形式传输,其他形式的这里不讲。串口异步传输在空闲状
[单片机]
<font color='red'>STM32</font> IO口模拟<font color='red'>串口</font>通讯
STM32串口收数据的几种不同方式
本例程通过PC机的串口调试助手将数据发送至STM32,接收数据后将所接收的数据又发送至PC机,具体下面详谈。。。 实例一: void USART1_IRQHandler(u8 GetData) { u8 BackData; if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //中断产生 { USART_ClearITPendingBit(USART1,USART_IT_RXNE); //清除中断标志. GetData = UART1_GetByte(BackData); //也行GetData=USART1- DR; USART1_SendByte(GetData); //
[单片机]
STM32学习记录18 IAP(1)
项目需要,需要开发一款手持设备,对产品进行软件升级。现在的产品都是使用STM32,所以可以很方便的应用STM32的 IAP功能对软件进行在线升级。 总体需求就是,主机Master通过CAN接口,发送数据给从机Slave。从机在接收到应用程序APP后,把接收的数据覆盖掉原来的应用程序区。从而实现Master对Slave的在线升级。 这里先介绍IAP,对IAP的整体实现有个了解,方便后续开发。参考了原子STM32开发板,对IAP功能的介绍。 要实现IAP,需要有两个项目代码。第一个称之为Bootloader程序,第二个称之为APP程序。Bootloader负责引导APP程序启动,以及需要在线更新APP时,接收主机发送的APP
[单片机]
<font color='red'>STM32</font>学习记录18 <font color='red'>IAP</font>(1)
关于STM32串口通信之疑惑小结
图1 如上图所示,第1420行,USART1_BASE为USART1基地址,(USART_TypeDef*) USART1_BASE 的作用是将USART1_BASE强制转换为 USART_TypeDef* 类型的指针,这条语句的整体作用是:将USART1_BASE强制转换为 USART_TypeDef* 类型的指针,然后将这个指针命名为USART1.(个人理解:USART1是一个指向USART_Typedef结构体类型的指针,即相当于USART1是一块空间的地址(首地址),在这个空间上按照 STM32的USART1寄存器地址的顺序依次排列着这个结构体的各个成员,每个结构体成员的地址(顺序)和STM32硬件上相应的寄存器地址相照
[单片机]
关于<font color='red'>STM32</font><font color='red'>串口</font>通信之疑惑小结
嵌入式实时操作系统μC/OS-II下的多串口通信编程方法
本文介绍了以LPC2365为核心处理器、嵌入式实时操作系统μC/OS-II下的多串口通信编程方法。对于固定长度的短字节帧数据,通过设置合适的字节触发深度,一次中断完成数据接收任务;对于变长的长字节帧数据,则通过多次中断和等待延时的方法判断数据稳定并完成帧数据的接收;对于大量数据的接收和发送采用建立FIFO数据队列的方法。 通过这些措施较好地完成了多串口较大数据量的通信任务。 国产某掠海恒高硬体拖靶在拖曳飞行时,需要将自身的各种参数通过无线链路实时上传至拖曳母机,同时实时接收拖曳母机的遥控指令完成相应的动作。拖靶自身的参数包括:开关高控状态、 蓄电池 电压 、无线电高度表值、飞行高度装定值、垂向加速度值、舵翼角、温度值、普通
[单片机]
嵌入式实时操作系统μC/OS-II下的多<font color='red'>串口</font>通信编程方法
STM32——硬件IIC主机通信
前言:   根据网上的资料,大部分网友表示STM32自带的硬件IIC存在bug,读写时很容易卡死。自己在调试的时候也出现卡死的情况,最后一点一点调试,也还是调通了。本文将记录自己调试STM32硬件IIC主机的一些心得体会。硬件IIC从机通信见另一篇文章:传送门 。 硬件平台:STM32F205 软件平台:keil v5 函数库:标准库 硬件IIC主机初始化 IIC的发送时序本文不不做介绍了,网上资料比较多。 下面看下STM32中IIC的相应设置。 首先是IIC的管脚配置。 void I2C1_GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStru
[单片机]
<font color='red'>STM32</font>——硬件IIC主机通信
基于串口实现LabVIEW与PLC的无线通信
  一、引言   LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美国国家仪器公司(National Instruments)推出一种基于图形语言(G 语言)的开发环境,编程非常方便,人机交互界面直观友好,用户可以创建独立的可执行文件,能够脱离开发环境而单独运行,是目前最流行的虚拟仪器编程平台,广泛应用于 测试 测量 、过程控制、实验室研究与自动化等方面。   可编程 控制器 (Programmable Log ic Controller,简称 PLC )是将 计算机 技术、 通信 技术和自动控制技术结合在一起的自动控制设备,
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved