[STM8] STM8 自带 BootLoader 串口烧录程序

[复制链接]
1220|14
 楼主| 怎么总是重复啊 发表于 2022-11-16 22:28 | 显示全部楼层 |阅读模式
(STM8AF624x)
一、进入BootLoader模式
根据STM8的资料可以知道,进入BootLoader的方法只有两种:
空芯片(Flash首地址内容不是0x82或0xAC),上电后即可进入BootLoader模式。OPTION配置参数地址 487Eh = 0x55 , 787Fh = 0xAA,复位后会进入BootLoader模式。

946616374f37097ab1.png

评论

By Chishin 本文链接:https://blog.csdn.net/zhangzejin3883/article/details/109766786 ———————————————— 版权声明:本文为CSDN博主「小歆Pro」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zhangzejin3883/article/details/109766786  发表于 2022-11-16 22:30
 楼主| 怎么总是重复啊 发表于 2022-11-16 22:33 | 显示全部楼层
写入OPTION配置参数

通过Flash写入的方式将地址 487Eh 和 787Fh写入0x55和0xAA即可,通过MCU执行一次Flash写入。
 楼主| 怎么总是重复啊 发表于 2022-11-16 22:37 | 显示全部楼层
使用库函数

此方法只适用于可以使用库函数的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);
 楼主| 怎么总是重复啊 发表于 2022-11-16 22:40 | 显示全部楼层
使用寄存器

由于部分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));
 楼主| 怎么总是重复啊 发表于 2022-11-16 22:44 | 显示全部楼层
硬件连接方式

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

若串口没有RST和CST引脚则需要手动复位MCU,而且需要在复位后1秒内使用软件连接MCU。
 楼主| 怎么总是重复啊 发表于 2022-11-16 22:48 | 显示全部楼层
烧录程序

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

STMFlashLoader Demo下载地址:FLASHER-STM8
 楼主| 怎么总是重复啊 发表于 2022-11-16 22:51 | 显示全部楼层
 楼主| 怎么总是重复啊 发表于 2022-11-16 22:54 | 显示全部楼层
选择好串口号、波特率等参数。
884916374f98a55668.png
 楼主| 怎么总是重复啊 发表于 2022-11-16 22:59 | 显示全部楼层
根据MCU的Flash容量选择Target
660036374fadb0a4a1.png
 楼主| 怎么总是重复啊 发表于 2022-11-16 23:00 | 显示全部楼层
选择需要下载的hex文件
785526374fb26b70f8.png
 楼主| 怎么总是重复啊 发表于 2022-11-16 23:01 | 显示全部楼层
下载完成,若重新下载需要重新插拔串口模块,并重新打开软件重复以上操作。
jf101 发表于 2024-6-23 14:39 | 显示全部楼层
串口不是RX接TX,反着进行首发数据嘛?
帛灿灿 发表于 2024-11-16 07:27 | 显示全部楼层

让电子产品电路免受瞬态雷击浪涌与ESD静电的损害。
Bblythe 发表于 2024-11-16 08:30 | 显示全部楼层

固有的ESD钳位二极管。
周半梅 发表于 2024-11-16 10:26 | 显示全部楼层

不打坏仪器内部
Pulitzer 发表于 2024-11-16 11:29 | 显示全部楼层

具体采用灌封胶的种类的性能参数,主要看对电源模块的灌封用的胶的要求
童雨竹 发表于 2024-11-16 13:25 | 显示全部楼层

不影响线路正常工作
Wordsworth 发表于 2024-11-16 14:28 | 显示全部楼层

然而它的作用又可以分为阻抗匹配和减少信号边沿的陡峭程度两点
Clyde011 发表于 2024-11-16 15:31 | 显示全部楼层

Cfinal是CESD和人体电容的并联组合
公羊子丹 发表于 2024-11-16 16:24 | 显示全部楼层

变压器副边不对负载供电
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

262

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部