枫天2015 发表于 2017-11-23 10:05:44

Cub4.23生成并实现U盘功能(USB device+SD),最好STM32F407上实现

我现在生成的代码只能实现枚举,还总是提示格式化 然后失败。。。。有大神帮忙吗? FS就行。

发表于 2017-11-23 10:05:45

我没用到这个文件,楼主,你就按照我给你发的去下载例程,里面有各种USB的使用。例程选择MSC这个就可以。

mark0668 发表于 2017-11-23 11:09:57

能枚举成功就是没问题了,你自己实现读写和获取容量就基本OK了

发表于 2017-11-23 11:20:01

我用HS好像总是不行,用FS是可以的。要用FATFS这种文件系统进行格式化。
官方例程:
http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-library-expansion/stsw-stm32046.html

枫天2015 发表于 2017-11-23 11:28:25

安 发表于 2017-11-23 11:20
我用HS好像总是不行,用FS是可以的。要用FATFS这种文件系统进行格式化。
官方例程:
http://www.st.com/con ...

读写总是失败,能参考下你的例程吗?FS

发表于 2017-11-23 13:38:04

我的是在产品中,参考的例程是我给你的这个。

枫天2015 发表于 2017-11-23 14:02:54

usbd_storage_if.c 这文件发我看看 ;P

枫天2015 发表于 2017-11-23 14:36:51

我有各种例程,旧版本的也是没问题的,就是用最新版Cub和1.17版库生成的代码不能正常识别sd卡,发现是HAL_StatusTypeDef HAL_SD_ReadBlocks(SD_HandleTypeDef *hsd, uint8_t *pData, uint32_t BlockAdd, uint32_t NumberOfBlocks, uint32_t Timeout)函数进入以下代码返回错误   
else if(__HAL_SD_GET_FLAG(hsd, SDIO_FLAG_RXOVERR))
    {hal_sd_printf("ERROR645\n");
      /* Clear all the static flags */
      __HAL_SD_CLEAR_FLAG(hsd, SDIO_STATIC_FLAGS);
      hsd->ErrorCode |= HAL_SD_ERROR_RX_OVERRUN;
      hsd->State = HAL_SD_STATE_READY;
      return HAL_ERROR;
    }
还没查处原因。。。。。。

发表于 2017-11-23 14:50:00

我用的是标准库,没有使用HAL库。

枫天2015 发表于 2017-11-24 09:08:43

有大神帮忙吗?额。。。:(
页: [1] 2
查看完整版本: Cub4.23生成并实现U盘功能(USB device+SD),最好STM32F407上实现