429内部flash模拟U盘?

2019-07-20 07:35发布

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个字节.       
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。