STM32芯片自带固化的ISP程序,在芯片上电的时候会检查BOOT0 BOOT1电平状态,如果
BOOT0=1
BOOT1=0
则会进入自带的ISP程序,基本可以满足程序升级需要。
但是如何进入这个模式,是一个问题,网上有人使用串口的握手信号来控制,但是这样会超过3条线(RX TX GND)。
昨天测试了一个方法,上位机发出一个指令,STM32用户自己的程序解析后,利用自己的IO口,控制一个简单的延时电路来拉高BOOT0,然后芯片重新启动,则进入ISP。刷新完成后,跳入用户程序运行,控制权交回用户程序。
程序中设置PB8为 ISP_DRV ,推挽输出;输出一定时间后,充满电容后,可以使用NVIC_SystemReset() 重新启动(3.12库)。即可进入ISP模式。
另外,需要在程序中设置如下向量表地址,才可以在勾选ISP程序的 jump to user application after flash后,进入用户程序。
/* Set the Vector Table base location at 0x08000000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
测试了若干次 没有发现异常。
关键字:stm32 升级程序
引用地址:
stm32 升级程序方案
推荐阅读最新更新时间:2024-03-16 15:06
STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)
stm32自带两个看门狗模块,独立看门狗IWDG和窗口看门狗WWDG。 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号) 。 看门狗主要作用是可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。 具体的实现步骤:开启看门狗,设置减计数的初始值,当计数值达到超时值时,产生MCU复位,此时本来运行的程序终止重新启动单片机(发生了故障)。在使用了看门狗
[单片机]
学习笔记之 STM32单片机
1、 AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2 1,意思是APB2接高速设备 2、 Stm32f10x.h相当于reg52.h(里面有基本的位操作定义),另一个为stm32f10x_conf.h专门控制外围器件的配置,也就是开关头文件的作用 3、 HSE Osc(High Speed External Oscillator)高速外部晶振,一般为8MHz,HSI RC(High Speed InternalRC)高速内部RC,8MHz 4、 LSE Osc(Low Speed External Oscillator)低速外部晶振,一般为32.768KHz,LSI RC(Low Speed Intern
[单片机]
ST免费的开发工具让开发者在所有桌面环境使用STM32微控制器
中国,2016年5月24日 横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)为Mac计算机用户推出了STM32微控制器免费开发工具。现在,苹果电脑用户可以以自己的熟悉(及喜爱)的作业环境开发嵌入式设计。 苹果OS X版STM32开发工具支持嵌入式设计全部流程,组件包括STM32CubeMX图形配置工具和System Workbench for STM32 集成开发环境。开发环境所含驱动程序让用户能够直接使用意法半导体的调试和编程工具。开发工具安装简单,容易上手,相当符合OS X用户的预期。 这是继不久前发布Linux版STM32开
[嵌入式]
STM32之CAN---中断管理浅析
1 前言 bxCAN占用4个专用的中断向量。通过设置CAN中断允许寄存器(CAN_IER),每个中断源都可以单独允许和禁用。 图1 从图1可以看出,最右边共四个中断,中断是可以通过CAN_IER来屏蔽或允许的。 2 CAN中断允许寄存器 (CAN_IER) 地址偏移量: 0x14 复位值: 0x0000 0000 图2 位31:18 保留位,硬件强制为0 位17 SLKIE: 睡眠中断允许 0: 当SLAKI位被置1时,没有中断产生; 1: 当SLAKI位被置1时,产
[单片机]
STM32基于库函数工程模板
#下载stm32官方(标准库/HAL库)下载链接 http://www.openedv.com/thread-295843-1-1.html ##文件夹介绍: Libraries文件夹下面有CMSIS和STM32F4XX_StdPeriph_Driver两个目录,这两个目录包含固件库核心的所有子文件夹和文件。 1.CMSIS文件夹存放的是符合CMSIS规范的一些文件。包括STM32F4核内外设访问层代码。DSP库,RTOS API,以及STM32F4片上外设访问层代码等。 2.STM32F4XX_StdPeriph_Driver放的是标准外设库源码文件和对应的头文件。inc目录存放的是stm32f4xx_ppp.h头文件,无
[单片机]
STM32再学习 -- 工程师眼中的SPI
简介: 前些天,有位网友谈到通过FPGA来实现SPI通讯。通过帖子的回复发现好多网友对SPI通讯还有些疑惑,于是今天就带着大家从SPI的标准协议,SPI在STM32单片机上的配置及在74HC595逻辑芯片通讯的实例来全方面认识一下这个既复杂又简单的通讯协议。 SPI 是Serial Peripheral Interface的缩写,直译为串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方式,是一种四线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使MCU有更多的时间处理其他事务。这里要说明一下,专利在电子行业还是很关键的,因此,部分其它厂商将SPI通讯协议更名以规避高昂的专利费,但其硬件处理方式是
[单片机]
STM32 同一I/O口下 多个口同时操作
规则: 一、置GPIOD- BSRR低16位的某位为'1',则对应的I/O端口置'1';而置GPIOD- BSRR低16位的某位为'0',则对应的I/O端口不变。 二、置GPIOD- BSRR高16位的某位为'1',则对应的I/O端口置'0';而置GPIOD- BSRR高16位的某位为'0',则对应的I/O端口不变。 三、置GPIOD- BRR低16位的某位为'1',则对应的I/O端口置'0';而置GPIOD- BRR低16位的某位为'0',则对应的I/O端口不变。 例如: 1)要设
[单片机]
stm32定时器优先级
什么是优先级 优先级是具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。 当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。 stm32定时器优先级 STM32 可以支持的 68 个外部中断通道,已经固定的分配给相应的外部设备。每个中断通道都具备自己
[单片机]