STM32F4系列自身内部FLASH模拟U盘的问题

2019-07-20 06:13发布

我打算用内部FLASH模拟U盘空间。
内部FLASH的操作是没有问题的,读写都很正常。
但是在USB驱动函数下,添加FLASH操作函数后,在PC端会出现无法格式化U盘。但是我用内存作为存储空间,则能进行格式化。参照http://www.openedv.com/thread-76304-1-1.html
是我的操作不对么?
下面是我的操作函数。

int8_t STORAGE_Read_FS (uint8_t lun,
                        uint8_t *buf,
                        uint32_t blk_addr,                       
                        uint16_t blk_len)
{
  /* USER CODE BEGIN 6 */
        blk_addr+=FLASH_USER_START_ADDR;
        uint32_t n;
        for(n=0;n<blk_len;n++)
        {
                Flash_Read_Sector(blk_addr,buf,STORAGE_BLK_SIZ);
                blk_addr+=512;
                buf+=512;
        }
       
  return (USBD_OK);
  /* USER CODE END 6 */
}


int8_t STORAGE_Write_FS (uint8_t lun,
                         uint8_t *buf,
                         uint32_t blk_addr,
                         uint16_t blk_len)
{
  /* USER CODE BEGIN 7 */
        blk_addr+=FLASH_USER_START_ADDR;
        uint32_t n;
        for(n=0;n<blk_len;n++)
        {
                Flash_Write_Sector(blk_addr,buf,STORAGE_BLK_SIZ);
                blk_addr+=512;
                buf+=512;
        }
  return (USBD_OK);
  /* USER CODE END 7 */
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
Fong0716
1楼-- · 2019-07-20 08:50
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-20 13:39
stm32的官方例程,USB MASS STROAGE就是用了内部flash。
你去www.stmcu.org,找找看了
chenbao
3楼-- · 2019-07-20 15:22
 精彩回答 2  元偷偷看……
chenbao
4楼-- · 2019-07-20 19:13
 精彩回答 2  元偷偷看……
正点原子
5楼-- · 2019-07-20 23:32
chenbao 发表于 2018-9-4 14:26
原子哥,您好,我最近在用STM32F429IGT6内部FLASH模拟U盘,在www.stmcu.org上没找到USB MASS STROAGE啊? ...

在sdk库里面就有。
解压里面就有usb例程,你单独找usb mass stroage是找不到的
chenbao
6楼-- · 2019-07-20 23:36
正点原子 发表于 2018-9-5 02:17
在sdk库里面就有。
解压里面就有usb例程,你单独找usb mass stroage是找不到的

原子哥,我按您说的去找sdk库,下载下来是一个.exe的安装包啊,没有例程啊。。。
严重怀疑我是不是火星来的。。。

一周热门 更多>