LPC1788内部EEPROM使用的问题

最近使用LPC1788内部EEPROM存储数据时候发现问题:LPC1788的EEPROM扇区只有 0-62 63扇区不存在



	uint32_t i, j;
	uint8_t count;
    uint8_t error = 0;

	debug_frmwrk_init();
	_DBG(menu);
	EEPROM_Init();

	count = sizeof(write_buffer);
    count &= 0xFC;

    _DBG_("Erase EEPROM");
    for(i = 0; i < EEPROM_PAGE_NUM; i++)
    {
        EEPROM_Erase(i);
    }
    for(i=0;i<EEPROM_PAGE_NUM;i++)
	{
        uint32_t *ptr = (uint32_t*)read_buffer;
        EEPROM_Read(0,i,(void*)read_buffer,MODE_32_BIT,EEPROM_PAGE_SIZE/4);
        for(j = 0; j < EEPROM_PAGE_SIZE/4; j++)
        {
            if(*ptr++ != 0)
            {
                _DBG("Erase ERROR at page ");_DBD(i);_DBG_("");
                error = 1;
                break;
            }
        }
	}
    if(error)
        while(1);
	_DBG_("Write data to EEPROM");
	EEPROM_Write(PAGE_OFFSET,PAGE_ADDR,(void*)write_buffer,MODE_8_BIT,count/1);
	_DBG_("Read data from EEPROM");
	EEPROM_Read(PAGE_OFFSET,PAGE_ADDR,(void*)read_buffer,MODE_16_BIT,count/2);

	//display eeprom data
	for(i=0;i<count;i++)
	{
        if(read_buffer[i] != write_buffer[i])
        {
             _DBG("Difference at position ");_DBD(i);_DBG_("");
             error = 1;
        }
	}
        
	if(error)
          _DBG_("ERROR!!!!");
        else
        {
            for(i=0;i<count;i++)
            {
              _DBC(read_buffer[i]);
            }
            _DBG_("");
	        _DBG_("Demo is terminated");
        }
     
	while(1);


LPC178x/177x系列微控制器的内部EEPROM最高4032字节(并不是4K),其中,LPC1776/77/78、LPC1785/86/87/88的内部EEPROM为4032字节,LPC1774的内部EEPROM为2048字节。

所以LPC1778内部EEPROM第63扇区是不存在的!


参考链接

http://blog.csdn.net/zhzht19861011/article/details/39080705


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值