stm32f103串口BootLoader

发布者:满足的36号最新更新时间:2019-10-15 来源: eefocus关键字:stm32f103  串口  BootLoader 手机看文章 扫描二维码
随时随地手机看文章

因为在论坛和官网都没搜到完全合适的BootLoader,所以自己移植完成了一个BootLoader工程。另外附APP文件工程,可做实验。用良心保证,看完后可以做一个成功的实验。

上位机选用SecureCrt,单片机用的stm32f103vet6。
 
首先搞清楚BootLoader过程步骤,代码可以再根据自己需要修改:

步骤一:初始化IO口,初始化uart串口,初始化定时器等等

步骤二:进入BootLoader选择界面,如果选择1是烧写程序,然后用上位机发送ymodem格式的bin文件。(bin文件就是应用程序的编译后的二进制代码),发送完成后,单片机已经把它存进flash中一块区域,并跳转运行此区域。

步骤二:进入BootLoader选择界面,如果选择2是直接跳转到应用程序区。

步骤二:进入BootLoader选择界面,如果不选择,不做任何操作,3秒后直接跳转到应用程序区。

实际SecureCRT效果图:
 
补充:bootloader占用整个flash的前0x000-0x3000空间,从flash的第0x3000空间开始存的是应用程序。

BootLoader和app分别建立两个工程,那么在app工程中需要修改中断向量起始地址为0x3000,和keil的target的IROM1,然后编译得到bin,怎么在keil得到bin?在user中fromelf.exe --bin -o "$L@L.bin" "#L"
 
我是这样做的暂时没有发现问题,编了几个简单的APP程序(流水灯,外部中断等)测试没有问题。也请有兴趣的朋友提出补充和纠正。

关键字:stm32f103  串口  BootLoader 引用地址:stm32f103串口BootLoader

上一篇:基于STM32无刷直流电机全套设计方案
下一篇:STM32 PWM输出控制步进电机-3000转每分钟串口显示+电位器调速

推荐阅读最新更新时间:2024-11-13 04:20

Arduino Atmega328P烧写bootloader及熔丝
0.前言 买到的新的Atmega328P芯片,需要对其烧录bootloader和熔丝才能正常使用,此处记录我烧录的过程。 参考资料1 1.硬件配置 AVR下载器,如图: Atmega328P最小系统,且留出ISP接口,即5V,MISO,MOSI,SCK,GND,RESET 连接AVR和Atmega328P的相应引脚 其中,AVR下载器的实际引脚如图: 2.烧录步骤 2.1.安装AVRDUDESS软件 2.2.检测MCU AVR和Atmega328P连接好之后,把AVR下载器插入电脑。然后打开AVRDUDESS软件,选择如下操作: 正常的话电机Detect后就可以识别出来MCU的型号。但是有可能会遇
[单片机]
Arduino Atmega328P烧写<font color='red'>bootloader</font>及熔丝
STC12C5A60S2串口二通信ESP8266-01S模块控制LED闪烁
物联网,ESP8266-01S,解决了STC12C5A60S2串口二功能通信问题控制LED灯闪烁 /*-------------------------------- * 2020年4月19日 //晶振12M * */ #include STC12C5A60S2.H #include UART2.h sbit LED = P3^6; unsigned char temps ={ AT+CIPMUX=1rn }; unsigned char code displaytable ={ AT+CIPSERVER=1,8080rn }; unsigned char dat =0; void delay(void) { cha
[单片机]
stm32 F407串口通信出现乱码
一直用正点原子的例程,后面开始在官网上下载库,完成自己写,到串口通信这里,发现写的东西跟例程一样,输出一直是乱码; 折腾半天是因为 晶振的问题。 我的板子HSE晶振为8M,分频是8;官网提供的25M,分频为25;(为什么分频后相同不能用?是因为板子晶振不对?) (为什么官网的晶振频率不可更改 25 ?);现在只是打印字符,还没有进行通信 修改后正确; 修改后输出正确结果,之前都是乱码
[单片机]
stm32 F407<font color='red'>串口</font>通信出现乱码
C51单片机串口初始化为何是这样
SCON-串行口控制寄存器:可位寻址,单片机复位时,各位都被清0 B7 B6 B5 B4 B3 B2 B1 B0 SM0 SM1 SM2 REN TB8 RB8 TI RI SM0、SM1:串行通信方式选择位。 SM0 SM1 工作方式 功能说明 波特率 0 0 方式0 同步移位寄存器方式
[单片机]
STM32F103的高级定时器1带死区互补输出配置
STM32F103的高级定时器1带死区互补输出配置 转载 2016-03-12 13:58:52 标签:stm32 原文:http://blog.sina.com.cn/s/blog_7fbb077f0102wjqt.html void TIM1_PWMConfig() { TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; TIM_OCInitTypeDef TIM_OCInitStructure; TIM_BDTRInitTypeDef TIM_BDTRInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,EN
[单片机]
<font color='red'>STM32F103</font>的高级定时器1带死区互补输出配置
如何采用STM32单片机串口接收数据
0目标1STM32串口简介 2硬件设计3软件设计 4下载验证 0.目标 利用串口1不停的打印信息到电脑上,同时接收从串口发过来的数据,把发送过来的数据直接送回给电脑。 1.STM32串口简介 串口设置的一般步骤可以总结为如下几个步骤: 1)串口时钟使能,GPIO时钟使能 2)串口复位 3) GPIO端口模式设置 4)串口参数初始化 5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤) 6)使能串口 7)编写中断处理函数 注:对于复用功能的IO,我们首先要使能GPIO时钟,然后使能复用功能时钟,同时要把GPIO模式设置为复用功能对应的模式。 查看手册《STM32 中文参考手册 V10》P110 的表格“8.1.1
[单片机]
如何采用STM32单片机<font color='red'>串口</font>接收数据
STM32F030C8T6串口接收不定长数据
usart.c文件代码。 #include usart.h #include gpio.h UART_HandleTypeDef huart1; /* USART1 init function */ void MX_USART1_UART_Init(void) { huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_P
[单片机]
51单片机74HC164串口控制数码管显示
一般数码管需要接7个脚才能显示,如果用单片机本身的I/O口,虽然可以但是浪费宝贵的i/O口资源。本例用移位寄存器74HC164作为数码管驱动进行控制。 74HC164特性 是一种8位串转并口的控制芯片,用于数码管和液晶显示等. 工作电压2--6V 管脚定义: 1) A,B管脚:与门数据输入引脚。 2)QA---QH 数据并口输出引脚 3) CLR 低电平时,数据清零,不能输入 4) CLK 数据输入时钟,上升沿读取串口数据 : 时序图:
[单片机]
51单片机74HC164<font color='red'>串口</font>控制数码管显示
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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