首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STM32L433RCTx USB MSC读写失败,GetCapacityFS工作

STM32L433RCTx USB MSC读写失败,GetCapacityFS工作
EN

Stack Overflow用户
提问于 2020-07-21 11:43:11
回答 1查看 252关注 0票数 0

我想建立一个SD读卡器从我的STM32L433RCTx。SD卡通过SDMMC 1 SD 4位宽总线连接。USB_DEVICE被激活并设置为海量存储类。

当我连接到计算机时,会显示一个存储设备,但Windows希望格式化它。然而,它不能格式化卡。它显示SD卡的正确大小。我最重要的职能是:

代码语言:javascript
复制
int8_t STORAGE_GetCapacity_FS(uint8_t lun, uint32_t *block_num, uint16_t *block_size)
{
  /* USER CODE BEGIN 3 */
  HAL_SD_GetCardInfo(&hsd1, &SDCardInfo);
  *block_size = BLOCK_SIZE;
  *block_num = SDCardInfo.BlockNbr;
  return (USBD_OK);
  /* USER CODE END 3 */
}

我想这个是正常工作的,因为SD卡的大小是正确的。

然而,读和写不起作用。

代码语言:javascript
复制
int8_t STORAGE_Read_FS(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len)
{
  /* USER CODE BEGIN 6 */
    HAL_SD_ReadBlocks(&hsd1, buf, blk_addr, (uint32_t) blk_len, 10);
    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 */
HAL_SD_WriteBlocks(&hsd1, buf, blk_addr, (uint32_t) blk_len, 10);
return (USBD_OK);
  /* USER CODE END 7 */
}

问题:

  1. 可以在不使用FATFS的情况下工作吗?还是我需要先将SD卡与FATFS连接到MCU上,然后在USB驱动程序中传递这些信息?
  2. ,哪些是正确的读写功能?

EN

回答 1

Stack Overflow用户

发布于 2020-08-31 09:49:04

对于用STM32F410R进行的示例测试,我使用云读写sdcard,代码如下:

代码语言:javascript
复制
int8_t STORAGE_Read_FS(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len)
{
  /* USER CODE BEGIN 6 */
  HAL_SD_ReadBlocks(&hsd, buf, blk_addr, blk_len, HAL_MAX_DELAY);

  /* Wait until SD card is ready to use for new operation */
  while (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER);

  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 */
  HAL_SD_WriteBlocks(&hsd, buf, blk_addr, blk_len, HAL_MAX_DELAY);


  /* Wait until SD card is ready to use for new operation */
  while (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER);

  return (USBD_OK);
  /* USER CODE END 7 */
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63013788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档