打印
[Kinetis]

KE02的EEPROM的问题

[复制链接]
1016|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
王发达|  楼主 | 2016-6-1 09:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在学习用ke02的eeprom,但是用例程给出的擦和写的函数操作的时候怎么也没反应。用keil调试发现eeprom中全是0xAA,而且擦除了还是这样,这到底是怎么回事。查了查手册地址也没错,是0x10000000-0x100000ff。
这是代码,就是把官方的flash例程稍微修改了一点:
int main (void)
{
                char ch;  
    uint32_t i;
    uint8_t  u8DataBuff[256];

                sysinit();
          printf("\nRunning the Flash_demo project.\n");
   
    FLASH_Init(BUS_CLK_HZ);
               
    //EEPROM_EraseSector(0x10000000);
                //EEPROM_Program1Byte(0x10000000, 0x00);
               
    /* Erase 99th sector */
    //FLASH_EraseSector(30*FLASH_SECTOR_SIZE);
    LED0_Init();  
    LED2_Init();
    for(i=0;i<256;i++)
    {
        u8DataBuff[i] = (uint8_t)i;
    }
   
    /* write data to erased sector */
    //FLASH_Program( 30*FLASH_SECTOR_SIZE,&u8DataBuff[0],256 );
    EEPROM_Program(0x10000000, &u8DataBuff[0],256);
    for( i=0;i<256/16;i++ )
    {
        for(ch =0;ch<16;ch++)
        {
            printf("0x%x,",*((uint8_t *)(i*16+ch+100*FLASH_SECTOR_SIZE)));
        }
        printf("\n");
    }
    while(1)
                {
                        ch = in_char();
                        out_char(ch);
            
                }
}

相关帖子

沙发
FSL_FAE_TJH| | 2016-6-3 22:57 | 只看该作者
EEPROM在编程前需要先擦除,EEPROM擦除的最小单元为一个sector,擦除时使用函数EEPROM_EraseSector( ADDRESS)来擦除指定地址的sector。
一个sector包含两个字节,例如擦除了0x1000 0000的sector,那么就可以对0x1000 0000和0x1000 0001两个字节进行编程。
擦除后就可以使用函数EEPROM_Program1Byte(ADDRESS,0x55),对指定地址进行单字节编程了。
也可以使用函数EEPROM_Program(ADDRESS,&u8DataBuff[0],256 ),以某地址为起始,编程多个字节。

看你贴出的代码,擦除函数都已经被注释了,因此后面的编程自然就没有起作用了。

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝