5. Test
Test程序中,先Flash_Write_NoBuffer将Data全部写入Flash,然后更改几个下次要写入的数值,只写入更改的数据,这样FlashBufferWrite就会仅更新更改的数值,其他数值不变(如果不使用BufferWrite,Flash同一Page其他数据都会被Erase)
注意Wite传入参数如果是U8的需要强制转换成U32
void FlashTest()
{
U8BIT Data_W[64] = {0xFA,0xFA,0xFE,0xFE,0xFA,0xFA,0xFE,0xFE,0xFA,0xFA,0xFE,0xFE,0xFA,0xFA,0xFE,0xFE,0xFA,0xFA,0xFE,0xFE,0xFA,0xFA,0xFE,0xFE};
U8BIT Data_R[64] = {0};
U32BIT FLASH_DATAZONE_BASE_ADDR = 0x08028000; //Address for test
Flash_Read_Byte(FLASH_DATAZONE_BASE_ADDR, Data_R,sizeof(Data_R));
Flash_Write_NoBuffer(FLASH_DATAZONE_BASE_ADDR,(U32BIT *)&Data_W[0],sizeof(Data_W));
Flash_Read_Byte(FLASH_DATAZONE_BASE_ADDR, Data_R,sizeof(Data_R));
Data_W[0] = 0;
Data_W[1] = 1;
//Merge new data and write, ohter data will contained
Flash_Write_WithBuffer(FLASH_DATAZONE_BASE_ADDR,(U32BIT *)&Data_W[0],4);
Flash_Read_Byte(FLASH_DATAZONE_BASE_ADDR, Data_R,sizeof(Data_R));
}
|