打印

STM8 EEPROM 块编程问题

[复制链接]
4041|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cgha|  楼主 | 2009-10-28 08:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 cgha 于 2009-10-28 09:04 编辑

我在用EEPROM 块编程出现了问题,程序和设定如下
@eeprom U8 E2_RfID[5];


//以块写的方式写入ID
#pragma section (EE_CODE)
void SetRfID(void)
{
U8 i;
FLASH_DUKR = 0xAE;
FLASH_DUKR = 0x56;        //解锁
while((FLASH_IAPSR & 0x08) == 0 );//确认解锁

FLASH_CR2 |= 0x01;
FLASH_NCR2 &= (u8)(~0x01);    //标准模式(先执行块擦)
for(i=0;i<5;i++)
{
  E2_RfID = DevIDCode; //写入
}      
//while((FLASH_IAPSR &0x04) ==0);  //确认写结束
//FLASH_IAPSR &= ~0x08;       //重新写保护
}
#pragma section()
在project->settings->linker->input的ram segment中加入EE_CODE section,属性为-ic,在主程序开始加入_fctcpy('E');在仿真中一执行SetRfID就出现swim prog error 42004之类的错误。芯片为stm8s105c6。
沙发
baishuiyang| | 2014-4-20 18:08 | 只看该作者
现在解决了吧

使用特权

评论回复
板凳
yzhou_2011| | 2014-6-7 17:53 | 只看该作者
是死机的问题吗?
#pragma section (EE_CODE)
void SetRfID(void)
{
U8 i;
FLASH_DUKR = 0xAE;
FLASH_DUKR = 0x56;        //解锁
while((FLASH_IAPSR & 0x08) == 0 );//确认解锁

// 问题是不是出现在以下两行代码?
FLASH_CR2 |= 0x01;
FLASH_NCR2 &= (u8)(~0x01);    //标准模式(先执行块擦)
for(i=0;i<5;i++)
{
  E2_RfID = DevIDCode; //写入
}      
//while((FLASH_IAPSR &0x04) ==0);  //确认写结束
//FLASH_IAPSR &= ~0x08;       //重新写保护
}

使用特权

评论回复
地板
hugo0chen| | 2014-6-10 10:35 | 只看该作者
发帖不结贴,真可耻

使用特权

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

本版积分规则

561

主题

719

帖子

0

粉丝