微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > stm32 Flash 只写入一个字节,后面的都写不进去了。。

stm32 Flash 只写入一个字节,后面的都写不进去了。。

时间:10-02 整理:3721RD 点击:
void writeEEPROM(u32 addr)
{int n;
        FLASH_Unlock();
        FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
  FLASH_ErasePage(addr);
  for(n=0;n<datanum;n++)
        {
                FLASH_ProgramHalfWord(addr+n*2, alldata[n]);
               
  }
   FLASH_Lock();
}
void readEEPROM()
{
        int n;
        u32 *addr;
        addr=(u32*)PAGEADD;
        for(n=0;n<datanum;n++)
        {
                alldata[n]=*addr;
                addr+=2;
        }
}
代码如上。
写了三个数进去,读回来第一个数是对的,后面都是65535
求大神解答啊,我请吃饭

自己顶......

原来是地址定义错误了,应该写半字是定义为 u16 *addr。所以它读到后面去了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top