OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9923|回复: 7

STM8用STlink和串口都下不了程序了

[复制链接]

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2013-8-2
在线时间
0 小时
发表于 2013-9-6 17:32:16 | 显示全部楼层 |阅读模式
我用的是IAR,IAR用STlink下载时提示如下:


点击yes后如下:


串口下载时按下复位键后离开点next提示如下:

提示打大概意思是boot loader不能启动和flash保护,IAR的提示是控制字读保护,现在是怎么都下不进去程序了,而且原来的程序也没运行了,我确定。
之前一直是两种方式都可以下载的,用STlink  SWIM也是可以仿真的,我改了控制字OPT5 ,本是想把STM8的启动等待时间改短一点,代码如下:
//选项字配置函数
void option_byte(void)
{
    //9个选项字配置寄存器值数组
    //u8 opt[9]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
    //u16 opt1_add1=0x4800,opt1_add2=0x4801;
    u16 opt7_add1=0x480d,opt7_add2=0x480e,opt5_add1=0x4809,opt5_add2=0x480a;
    do
    {
        FLASH_DUKR = 0xae; // 写入第一个密钥
        FLASH_DUKR = 0x56; // 写入第二个密钥
    } while(FLASH_IAPSR_DUL == 0); // 若解锁未成功,则重新再来
    FLASH_CR2 = 0x80;//使能选项字修改
    FLASH_NCR2= 0X7f;//选项字互补寄存器
    
    *((u8*)opt5_add1) = 0xb4;      // 24M外部时钟128个启动延时时钟
    while(FLASH_IAPSR_EOP == 0); // 等待写操作成功
    *((u8*)opt5_add2) = 0x4b;  //延时互补寄存器
    while(FLASH_IAPSR_EOP == 0); // 等待写操作成功
    
    *((u8*)opt7_add1) = 0x01;      // 24M外部时钟时FLASH访问等待1个时钟
    while(FLASH_IAPSR_EOP == 0); // 等待写操作成功
    *((u8*)opt7_add2) = 0xfe;  //FLASH访问等待选项字互补寄存器
    while(FLASH_IAPSR_EOP == 0); // 等待写操作成功
    
    FLASH_CR2 = 0x00;//禁止选项字修改
    FLASH_NCR2= 0Xff;//选项字互补寄存器
    FLASH_IAPSR_DUL = 0;//写保护
}
我用的24M外部晶振,这个程序最开始只对OPT7做了修改,因为手册里面说时钟》16M时要让fllash等待一个时钟什么的,是没有有问题,我加入对OPT5的操作后就下不了程序了,求大神帮忙啊!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2013-8-2
在线时间
0 小时
 楼主| 发表于 2013-9-10 09:57:04 | 显示全部楼层
问题已解决,用STVP设置自己的单片机型号,在OPTION BYTE窗口将ROP关闭(默认是关闭的),点击“Progmam”——》“All tabs”就ok了,就可以用串口及STlink下载程序了。有一点不解的是我用的STM8S208RB在OPTION BYTE窗口的最下面的BOOTLOADER ENABLE只能选择Bootloader disabled,但是我现在还是可以用串口下载程序。
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2013-9-6 20:57:17 | 显示全部楼层
复位后,应该是可以下载的哦,你复位后,用stllink去连接试试(复位后1秒钟内)。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2013-8-2
在线时间
0 小时
 楼主| 发表于 2013-9-9 08:45:36 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥: 复位还是不行。
回复 支持 反对

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2013-9-9
在线时间
4 小时
发表于 2013-9-9 09:09:48 | 显示全部楼层
我在调试IAP功能时,也导致用RLINK无法烧录程序。求大侠来救
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2013-8-2
在线时间
0 小时
 楼主| 发表于 2013-9-10 10:21:47 | 显示全部楼层
刚刚的问题解决有问题,我没有把STVP软件窗口最大化,所以看不到Bootloader enable选项。刚刚设置成Bootloader disable用串口下载进去程序了,但是像网上资料说的一样,只能下载一次就不行了,设置成Bootloader enable后就可以用串口多次下载了。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2013-9-10 22:56:28 | 显示全部楼层
回复【6楼】太平洋冲浪者:
---------------------------------
谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2013-8-2
在线时间
0 小时
 楼主| 发表于 2013-9-22 17:11:45 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
应该的,这样大家才能相互学习,我用的是STVP+STlink解决的,不知道有没有IAR+STlink解决这样问题的方法
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-9-30 08:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表