我想读取stm32的flash的内容,
s16 FLASHRead(vu32* address,u8 *flashdata,u16 len)//lenΪËĵı¶Êý
{
u32 data=0,i=0;
if(len%4!=0) return Err_Lenth;
FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);//Çå³ýһЩ±êÖ¾
for(i=0;i<len/4;i++)
{
data=(*(vu32*)(address+i));//
flashdata[i*4] =(u8)data;
flashdata[(i*4)+1]=(u8)(data>>8);
flashdata[(i*4)+2]=(u8)(data>>16);
flashdata[(i*4)+3]=(u8)(data>>24);
}
return (i*4);
}
这样读出来的是正确的数据,但是不应该是这样吗?
data=(*(vu32*)(address+i*4));//
为什么是+1,而不是+4啊?
|