ALIAS:串口更新代码。用于项目:mini示波器
STM32启动方式分为3种:
从 ST官网下载 flash loader demonsrtation v2.50用来更新程序,原理就是ST的芯片在出厂前在“信息块”0x1FFFF000-0x1FFFF80F, 2K的flash内固化了一段程序用于更新代码。此部分代码用户无法删除,无论用户在代码区写入了什么内容都不影响此部分功能的实现。
1,连接串口工具到stm32单片机,5个引脚要保证:VCC,GND,TX,RX,BOOT0=1(使用跳线连接到VCC)
注意:用的是串口1,只有串口1有这个功能,不能使用别的串口。
2,复位(res=0),低电平复位。
3,打开 flash loader,选择使用的串口。
,
4,next,可以看到使用的芯片的flash大小是512K
5,next 可以看到flash 一共是256页,每页2K个字节。(注意不同的型号页数不同,每页的字节不同,看具体型号)
6,next,可以看到擦拭,部分擦拭,编写,保护,读取等选项。按照实际需求去设定。可以设置烧写的起始地址等。(很灵活)
关键字:STM32 flash V2.50
引用地址:
STM32 flash loader demonstration V2.50使用笔记
推荐阅读最新更新时间:2024-03-16 15:43
STM32串口通信中使用printf发送数据配置方法
在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。 下面就说一下使用printf需要做哪些配置。 有两种配置方法: 一、对工程属性进行配置,详细步骤如下 1、首先要在你的main 文件中 包含 stdio.h (标准输入输出头文件)。 2、在main文件中重定义 fputc 函数 如下: // 发送数据 int fputc(int ch, FILE *f) { USART_SendData(USART1, (unsigned char) ch);// USART1 可以换成
[单片机]
STM32高级控制定时器1的使用
STM32中的高级控制定时器(Tim1)是由一个16位的自动装载计数器组成,它由一个可编程预分频器驱动。 用途在于:测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较,PWM,嵌入死区时间的互补PWM等)。 使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。 具体如下: 16位上下,自动装载计数器。 16位可编程预分频器,计数器时钟频率的分频率的分频系数为1-65535之间任意数值,4个独立通道: 输入捕获 输出比较 PWM生成 单脉冲模式输出 死区时间可编程的互补输出 使用外部信号控制定时器和定时器互连的同步电路 在指定数目的计数器周期之后更新定时器寄存器
[单片机]
STM32单片机串口一键下载电路与操作方法详解
STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的Flash。 2)SRAM = 芯片内置的RAM区,就是内存啦。 3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。 要了解STM32的几种启动模式. BOOT0接GND,BOOT1接GND.那就是正常的启动模式,从flash加载代码. 而BOOT0接V3.3,BOOT1接GND.则是ISP模式,也就是串口更新代码. 其次,你要了解STM32 ISP下载代码的过程. 首先BOOT0接V3.3,然
[单片机]
CAN总线学习笔记|CAN盒测试STM32的CAN中断接收
CAN基础知识介绍文中介绍了CAN协议相关的基础知识,以及STM32F4芯片的CAN控制器相关知识,下面将通过实例,利用STM32CubeMX图形化配置工具,并配合CAN盒,来实现CAN通讯的中断收发测试 1. STM32CubeMX配置 CAN是挂载在APB1总线上,设置PCLK1时钟频率到最大45MHz 激活CAN1,配置位时序参数,其他基本参数以及工作模式(此处设置为Normal普通模式) CAN波特率的计算公式:只需要知道BS1和BS2的设置,以及APB1的时钟频率,就可以方便的计算出波特率。比如设置TS1=8、TS2=6和BRP=6,在APB1频率为45Mhz的条件下,即可得到CAN通信的波特率=45000/6
[单片机]
按键输入-GPIO输入
一,硬件连接 如图,有4个按键,分两组 第一组:WK_UP连接VCC 第二组:KEY0,KEY1,KEY2连接GND 确定IO口工作模式: 当IO口按下时我们需要捕捉到IO口的电平变化 所以WK_UP按下后为高地平,需设置按下前为低电平,应设置为下拉输入 同理KEY0,KEY1,KEY2按下后为低电平,应设置为上拉输入 二,读取IO输入的相关函数: 1,库函数 uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 2,寄存器 GPIO端口输入寄存器:GPIOx_IDR 3,位操作 PE
[单片机]
stm32正点原子学习笔记(29)独立看门狗实验
iwdg.c 1 #include iwdg.h 2 3 void iwdg_init(uint8_t IWDG_Prescaler,uint16_t Reload) 4 { 5 IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); 6 IWDG_SetPrescaler(IWDG_Prescaler); 7 IWDG_SetReload(Reload); 8 IWDG_ReloadCounter(); 9 IWDG_Enable(); 10 11 } iwdg.h 1 #ifndef __IWDG_H 2
[单片机]
stm8 在IAR 下烧写出现The Flash Memory Read-out protection 的解决方法
刚买回来的stm8 最小板居然不能烧写程序,在以前的板子上烧写可是好好的。 烧写就出现The Flash Memory Read-out protection (内存写保护) 错误。 废话少说: 要解除写保护,先仔仔stvp工具 点击打开链接 打开stvp工具后: 选择option byte 选择关闭写保护,如果默认是关闭就不用管 然后点击右键选择program current 重新烧写一次,然后重新打开IAR,发现就可以重新开始下载程序了
[单片机]
大神教你如何快速使用DMA处理ADC
ADC: 1.STM32内部的ADC模块有三个ADC1,ADC2,ADC3,他们彼此独立,所以可以进行同步采样。 2ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生,要在RCC_CFGR配置,再ADC自己的寄存器中在没有时钟分频的配置位。 3.ADC转换时间: STM32F103xx增强型产,时钟为56MHz时为1μ s( 时钟为72MHz为1.17 μ s) 4.ADC的转换精度默认设置为12位,输入范围:ADC输入范围:V REF-≤ VIN≤ VREF+ 5.共有18个通道,其中外部16个通道,内部两个通道,内部温度传感器连接在ADC1_IN16,内部参考电压V REFINT连接在ADC1_IN17 6
[单片机]