首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32 对内部FLASH读写接口函数

STM32 对内部FLASH读写接口函数

因为要用内部FLASH代替外部EEPROM,把参数放在STM32的0x08000000+320K处,其中20K是bootloader,300K是应用程序。
原理:先要把整页FLASH的内容搬到RAM中,然后在RAM中改动,然后擦除整页FLASH,再把改动后的内容写入原Flash页。下面程序调试通过。
/*******************************************************************************
* Function Name  : I2C_EE_BufferRead
* Description   : Reads a block of data from the EEPROM.
*Input         :
*                 -RomAddr
*                 -NumByteToRead
*                 -pRomData
*Output        : None
*Return        : None
*******************************************************************************

void I2C_EE_BufferRead(u16 RomAddr,u16NumByteToRead,u8 *pRomData)
{

   u32 param_flashbase;
    u8*ptr;

   param_flashbase = 0x8000000+(300+20)*1024;
    ptr =(u8*)(param_flashbase + RomAddr);

   while( NumByteToRead-- >0)
    {
       *pRomData =*ptr;           //直接赋值即可
         printf("0x%x",*pRomData);
        pRomData++;
        ptr++;
    }
   return;
}


/*******************************************************************************
* Function Name  :
I2C_EE_BufferWrite
*Description   : Write a block of data to theEEPROM.
*Input         :
*                 -RomAddr
*                 -NumByteToRead
*                 -pRomData
*Output        : None
*Return        : None
继承事业,薪火相传
返回列表