打印
[STM8]

STM8普及,无需ST-Link,新买的器件可以无限次数串口下载程序

[复制链接]
6318|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bluefeel|  楼主 | 2010-8-24 20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM8的单片机,只要内部是空的,就算Bootloader disable,也会上电运行Bootloader,可以从串口下载程序。新的器件虽然Bootloader disable,但是也可以用串口下载至少一次程序。
如果是一般的程序下载后,Bootloader是disable,那么不借助ST-Link就再也不能用串口下载了。
所以新买的器件要不借助ST-Link无限次串口下载,第一次下载的程序必须要修改option byte,使得Bootloader enable,这样以后可以一直用串口下载了。
下面是程序:
#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);
}
编译后的S19文件:
BL_EN.rar (13.06 KB)
这个文件只适用于STM8S105,STM8S20x系列!
串口下载程序的步骤:
STM8串口下载程序教程.pdf (409.9 KB)
沙发
hotpower| | 2010-8-24 20:11 | 只看该作者
有意思…

使用特权

评论回复
板凳
lhzw2001| | 2010-8-24 22:43 | 只看该作者
试试,顶顶

使用特权

评论回复
地板
mcuisp| | 2010-8-25 07:51 | 只看该作者
问题是BootLoader Enable以后,App就无法运行了

使用特权

评论回复
5
mcuisp| | 2010-8-25 07:54 | 只看该作者
其实STM8可以有个选项,即BootLoader等待串口连接2秒左右(可设置最好),无连接即运行App
这样串口ISP在调试阶段就有不小的实际意义了。
如果是这样,我会把STM8的ISP添加到mcuisp里去。

使用特权

评论回复
6
bluefeel|  楼主 | 2010-8-25 08:40 | 只看该作者
本帖最后由 bluefeel 于 2010-8-25 08:49 编辑

mcuisp:
不要随便猜
BootLoader Enable以后,上电没有ISP的话1s后运行用户程序
1s的等待时间就看个人取舍了
STM8 bootloader frequently asked questions.pdf (311.62 KB)
其实大部分问题这里都有说明了

使用特权

评论回复
7
McuPlayer| | 2010-8-25 10:40 | 只看该作者
ISP下载和SWIM调试是2回事
STC老姚是把ISP发扬光大了,但同时把很多有歧义的概念灌输给了很多新入道的工程师

使用特权

评论回复
8
sunny_ugv| | 2010-8-25 11:25 | 只看该作者
好东西,先收藏

使用特权

评论回复
9
mcuisp| | 2010-8-25 22:29 | 只看该作者
本帖最后由 mcuisp 于 2010-8-25 22:37 编辑

有1S等待时间么?我再看看。
以前怎么没有注意到、、、、、

确实有,呵呵。
我以前没看flow chart,只看了table1条件表。

有时间增加下stm8S/L的ISP。

使用特权

评论回复
10
林林a1| | 2016-4-13 15:10 | 只看该作者

请问下,我用的是STM8S208RB,之前已经烧写过程序,现在按大家说的步骤操作后,还是不行。请问是不是应该是新的STM8(即空的),第一次烧写程序这样操作以后才可以单独用串口。已经烧写过的芯片即是是按上面介绍不步骤操作也不可以再单独使用串口下载了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

14

帖子

1

粉丝