Flash基础入门之STM8不用手动复位进入自带Bootloader方法(串口下载)
小标 2019-04-12 来源 : 阅读 801 评论 0

摘要:本文主要向大家介绍了Flash基础入门之STM8不用手动复位进入自带Bootloader方法(串口下载),通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。

本文主要向大家介绍了Flash基础入门之STM8不用手动复位进入自带Bootloader方法(串口下载),通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。

Flash基础入门之STM8不用手动复位进入自带Bootloader方法(串口下载)

源:STM8不用手动复位进入自带Bootloader方法(串口下载)
STM8不用手动复位进入自带Bootloader方法(串口下载)除非STM8片子的空的,如果复位运行的是自带Bootloader,而且要通过串口下载程序的话,必须在1s内点击上位机,要不然就运行用户程序了。 这一步很麻烦,所以想把它给省掉。 后来发现上位机Flash  Loader  Demonstrator在启动画面点击Next后,会先从串口的DTR、RTS输出一个大概100多毫秒的脉冲,TTL电平就是负脉冲了,之后才会和单片机通信。 所以只要按照下面的图接线,如果单片机复位运行的是自带Bootloader,只要在Flash  Loader  Demonstrator启动画面点击Next,软件就会复位单片机,不用自己手动复位再点击Next就可以和单片机通信了。 
 ourdev_584482AHFIL8.jpg (95.32 KB)
2010-12-30 05:06

 
 ourdev_584483VAMTSX.jpg (101.08 KB)
2010-12-30 05:06

还有就是下载STM8S或STM8L时候的Flash Loader  Demonstrator启动画面设置不一样
STM8S是这样: 
 ourdev_584484GF34HC.jpg (60.28 KB)
2010-12-30 05:06

STM8L是这样:  
 ourdev_584485XKMQJ1.jpg (63.51 KB)
2010-12-30 05:06

还有关于复位是否运行自带Bootloader,至少符合下面两个条件之一就可以了
1、器件是空的(新买的就是空的)
2、optionbyte里的Bootloader是Enable的
新的器件optionbyte里的Bootloader是disable的,为了能不止一次使用串口下载程序,第一次下载的程序必须修改optionbyte使得Bootloader  Enable
这是STM8S的程序:

#include "iostm8.h"

void main(void)
{   
    FLASH_DUKR = 0xae;    
    asm("nop");    
    FLASH_DUKR = 0x56;    
    asm("nop");    
    while(!(FLASH_IAPSR & 0x08));    
    asm("nop");    
    FLASH_CR2 = 0x80;    
    asm("nop");    
    FLASH_NCR2 = 0x7f;    
    asm("nop");    
    *((unsigned char *)0x487e) = 0x55;    
    asm("nop");    
    *((unsigned char *)0x487f) = 0xaa;   
    while(1);
}

 
点击此处下载  STM8S_BL_EN.rar (12.95 KB)
 STM8S_BL_EN.rar (12.95 KB) 下载次数: 420
2010-12-30 05:06

这是STM8L的程序:

#include "iostm8L152c6.h"

void main(void)
{    
    FLASH_DUKR = 0xae;    
    asm("nop");    
    FLASH_DUKR = 0x56;                  // 解除写保护    
    asm("nop");    
    while(!(FLASH_IAPSR & 0x08));       // 等待解锁    
    asm("nop");    
    FLASH_CR2 = 0x80;                   // 对选项字节进行写操作    
    asm("nop");    
    *((unsigned char *)0x480b) = 0x55;    
    asm("nop");    
    *((unsigned char *)0x480c) = 0xaa;  // 写入选项字节    
    while(1);
}

以上就介绍了Flash的相关知识,希望对Flash有兴趣的朋友有所帮助。了解更多内容,请关注职坐标常用软件Flash频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程