429内部flashsector模拟一个128KU盘,模拟出来以后显示0字节可用?
while((WriteAddr+ADDR_FLASH_SECTOR_9)<endaddr)//写数据
{
if(STMFLASH_WriteByte((WriteAddr+ADDR_FLASH_SECTOR_9),*pBuffer))//写入数据
{
break; //写入异常
}
WriteAddr+=1;
pBuffer++;
}
u8 STMFLASH_WriteByte(u32 faddr, u8 dat)
{
u8 res;
res=STMFLASH_WaitDone(0XFF);
if(res==0)//OK
{
FLASH->CR&=~(3<<8); //清除PSIZE原来的设置
FLASH->CR|=0<<0; //设置为8bit宽,确保VCC=2.7~3.6V之间!!
FLASH->CR|=1<<0; //编程使能
*(vu8*)faddr=dat; //写入数据
res=STMFLASH_WaitDone(0XFF);//等待操作完成,一个字编程,最多100us.
if(res!=1)//操作成功
{
FLASH->CR&=~(1<<0);//清除PG位.
}
}
return res;
}
u8 STMFLASH_ReadByte(u32 faddr)
{
return *(vu8*)faddr;
}
void STMFLASH_Read_u8(u32 ReadAddr,u8 *pBuffer,u32 NumToRead)
{
u32 i;
for(i=0;i<NumToRead;i++)
{
pBuffer[i]=STMFLASH_ReadByte(ReadAddr+ADDR_FLASH_SECTOR_9);//读取1个字节.STMFLASH_ReadByte
ReadAddr+=1;//偏移4个字节.
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>