OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3823|回复: 1

429内部flash模拟U盘?

[复制链接]

21

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2473
金钱
2473
注册时间
2014-4-26
在线时间
172 小时
发表于 2018-6-24 19:55:02 | 显示全部楼层 |阅读模式
5金钱
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个字节.       
        }
}

微信截图_20180624195222.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-25 01:45:16 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 08:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表