用的是IAR编译器,碰到了一个奇怪的问题 EEPROM的地址范围是0x4000~0x43ff
向0x4000 写数据是可以的 eeprom_write_bytes(0x4000,"1234",4);
但向0x4100写数据就不可以eeprom_write_bytes(0x4100,"1234",4),通过STVP查看存储区,没有数据写入
下面是代码,麻烦给指点下,谢谢!
void eeprom_write(unsigned long addr,unsigned char num)
{
FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA); //确保前面的操作完成
FLASH_Unlock(FLASH_MEMTYPE_DATA); //解锁写保护
FLASH_ProgramByte(addr,num);
FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA); //等待操作完成
FLASH_Lock(FLASH_MEMTYPE_DATA); //写保护
}
void eeprom_write_bytes(unsigned long addr,unsigned char *pbuf,unsigned char len)
{
unsigned char i;
for(i=0;i<len;i++)
{
eeprom_write(addr+i,*pbuf++);
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>