STM8 自带 BootLoader 串口烧录程序

发布者:Haifeeng最新更新时间:2022-07-11 来源: csdn关键字:STM8  BootLoader 手机看文章 扫描二维码
随时随地手机看文章

一、进入BootLoader模式

根据STM8的资料可以知道,进入BootLoader的方法只有两种:


空芯片(Flash首地址内容不是0x82或0xAC),上电后即可进入BootLoader模式。

OPTION配置参数地址 487Eh = 0x55 , 787Fh = 0xAA,复位后会进入BootLoader模式。

二、写入OPTION配置参数

通过Flash写入的方式将地址 487Eh 和 787Fh写入0x55和0xAA即可,通过MCU执行一次Flash写入。


1、使用库函数

此方法只适用于可以使用库函数的MCU,记得引用库的头文件 stm8s_flash.h,若MCU不能使用库函数可以使用寄存器方法。


 /* 定义Flash编程时间 */

 FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);

  /* 解锁Flash */

 FLASH_Unlock(FLASH_MEMTYPE_DATA);

 FLASH_ProgramByte(0x487E,0x55);

 FLASH_ProgramByte(0x487F,0xAA);

 FLASH_Lock(FLASH_MEMTYPE_DATA);


2、使用寄存器

由于部分STM8芯片没有标准库的支持,导致不能使用 stm8s_flash 库函数,以下提供一个寄存器的方式写OPTION配置参数的方法:


  /*解锁Flash*/

  do

  {

      FLASH_DUKR = 0xAE;

      FLASH_DUKR = 0x56;      

  }

  while(!(FLASH_IAPSR & 0X08));

  

  /*对选项字节进行写操作使能*/

  FLASH_CR2 = 0X80;

  /*互补控制寄存器*/

  FLASH_NCR2 = 0X7F;


  /*写入OPTION内容*/

  *((unsigned char *)0x487E) = 0x55;

  *((unsigned char *)0x487F) = 0xAA;

  

  /*等待写结束*/

  while(!(FLASH_IAPSR & 0x04));


三、硬件连接方式

这里我们使用串口模块来连接MCU,这里需要注意,串口模块需要引出RST和CST引脚。


若串口没有RST和CST引脚则需要手动复位MCU,而且需要在复位后1秒内使用软件连接MCU。


四、烧录程序

MCU连接好串口后,将串口模块连至电脑,打开 STMFlashLoader Demo.exe 软件。


STMFlashLoader Demo下载地址:FLASHER-STM8

选择好串口号、波特率等参数。

根据MCU的Flash容量选择Target

选择需要下载的hex文件

下载完成


若重新下载需要重新插拔串口模块,并重新打开软件重复以上操作。

关键字:STM8  BootLoader 引用地址:STM8 自带 BootLoader 串口烧录程序

上一篇:STM8S103F3P6+步进电机28BYJ-48+ULN2003 实现简单的正反转
下一篇:STM8串口接收中断无法进入问题(STM8L051/101F3)

推荐阅读最新更新时间:2024-11-04 16:09

STM8 入门学习与实验(一)GPIO与UART
简介:这一章节将描述如何配置GPIO,以及如何配置UART STM8工程模版:http://download.csdn.net/detail/u012388993/9904051 这两则实验将使用到的基本的系统配置初始化函数 CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART1, ENABLE);//配置UART1时钟 CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);配置时钟分频为1,则系统时钟频率为16Mhz/1 = 16Mhz CLK_HSICmd(ENABLE);//使能内部振荡器 实验一、点亮LED灯,灯正极接电源负极连接
[单片机]
<font color='red'>STM8</font> 入门学习与实验(一)GPIO与UART
vscode 使用 SDCC 开发 STM8
本文介绍如何在 EIDE 上将 STM8 标准库移植到 SDCC 工具链,并完成测试 以 STM8S105K4T6 为例,其他的库过程大都相同 1. 创建 STM8 项目 打开 EIDE, 新建项目,类型选择 C51,注意:路径里最好不要有中文空格,在编译器里会出错 切换工具链至 SDCC, 打开编译选项,设置 device 为 stm8 设置宏,本项目为:STM8S105,USE_STDPERIPH_DRIVER 新建一个目录,将复制外设库到里面,并去除掉芯片不支持的外设源文件 2. 移植过程:主要针对 stm8s.h, 其他文件基本不用动 移植的过程并不复杂,就是参照其他编译器的定义,查询 SDCC 手册,写出适合 SDCC
[单片机]
vscode 使用 SDCC 开发 <font color='red'>STM8</font>
Stm32 Bootloader整理
一. 基本概念 1.IAP IAP是In Applica ti on Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的 通信 口对产品中的 固件 程序进行更新升级。 通常在用户需要实现IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信管道(如USB、 USART )接收程序或数据,执行对第二部分代码的更新;第二个项目代码才是真正的功能代码。 2.Bootloader 在上述IAP的概念中,bootloader就是其第一个项目程序。b
[单片机]
Stm32 <font color='red'>Bootloader</font>整理
意法半导体STM8微控制器出货量突破20亿大关
横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)宣布,其稳健且多用途的STM8微控制器在出货量达10亿颗之后不到两年,进一步突破20亿颗大关,其中大陆市场表现特别突出。 世界半导体贸易统计协会(World Semiconductor Trade Statistics;WSTS)的最新报告显示,在STM8微控制器快速成长的出货量推动下,意法半导体通用微控制器的市占率从2013年的8.2%成长至2015年的12.7%。意法半导体微控制器行销总监Daniel Colonna表示: STM8已成为市场上最受欢迎的微控制器产品,是我们市场策略的坚固根
[单片机]
IAR环境STM8工程快速修改工程名称
如果网上获取了一个参考的IAR环境下的代码工程包,想用作自己的项目,往往需要修改工程名称,那么在IAR下如何修改呢? 本例中,原来工程名称是text,现在想改为UF_Lgt,步骤如下 s1: 修改4个工程文件名称 做工程文件夹下,修改以下5个文件,改为自己的工程文件: *.dep *.ewt *.ewd *.eww *.ewp s2: 将*.eww文件用txt打开,修改“*.ewp”为自己的工程名称 s3 双击*.eww文件,打开工程 查看工程文件,修改成功。 s4 设置编译输出文件名称 程序编译后,生成的输出文件,如.out和.hex文件,建议名称采用工程名称。 a. 生成采用工程名称的hex文件 可按如下方式
[单片机]
IAR环境<font color='red'>STM8</font>工程快速修改工程名称
stm8 Error[Li005]: no definition for XXX 的解决办法
之前gpio.c文件有问题,重新在根文件夹/inc /src中添加了一个新的gpio.c,然后我在 stm8_board.c文件中编写串口函数,编译时报错 Error : no definition for”GPIO_Init“ 意思是:我没有定义这个GPIO_Init()函数?不可能啊??????????????????? 我检查了头文件,gpio.c中定义了,gpio.h中也声明了为啥说我没定义不让我调用???????????? 经检查发现:我添加c文件时没有Make 发现.c文件里有个#endif 然后把那行删去 (.C文件有问题) 编译成功
[单片机]
<font color='red'>stm8</font> Error[Li005]: no definition for XXX 的解决办法
STM8 IAR不识别ST-LINK V2问题解决
以前一直玩STM32,淘宝推荐发现STM8S103F3P6最小系统板3.6元一个,就买回来玩玩了。一值用Keil,现在改IAR,安装IAR for STM8,但是发现 the debugging session could not be started,Either the debugger initialization failed,or else the file D…hex was corrupt or of an unsupported format. There might be more information in the Debug Log window 没办法就找百度吧,有的说改成STM8S003,STM
[单片机]
自己用C语言写单片机PIC18 serial bootloader
  HyperBootloader_PIC18_J 和 HyperBootloader_PIC18_None_J   完成PIC16 bootloader (详细情况请阅读我的上一篇随笔《自己用C语言写单片机PIC16 serial bootloader》) 后,接着就开始写PIC18的UART bootloader。事实上我写了HyperBootloader_PIC18_J 和 HyperBootloader_PIC18_None_J 两种bootloader。 一种给PIC18F, 另一种给PIC18FJ。两种bootloader除了在实现上有一点不同,大小也不同外,其他都差不多。都是模仿HI-TECH PICC bootlo
[单片机]
自己用C语言写单片机PIC18 serial <font color='red'>bootloader</font>
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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