Board logo

标题: STM32 对内部FLASH读写接口函数 [打印本页]

作者: yuyang911220    时间: 2014-9-25 23:20     标题: 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





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0