硬汉嵌入式论坛

 找回密码
 立即注册
查看: 843|回复: 4
收起左侧

[SD/SDIO] SD卡初始化问题

[复制链接]

1

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2023-3-26 16:30:52 | 显示全部楼层 |阅读模式
https://blog.csdn.net/qq_42900996/article/details/108106655

之前一直初始化成功后写数据返回状态1(错误),通过此文章看到begin2里还初始化了一次,我试了一下这样就能写入了,请问有人知道是为什么吗

回复

使用道具 举报

1

主题

1

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2023-3-26 16:32:39 | 显示全部楼层
代码里第130行
QQ图片20230326163126.png
回复

使用道具 举报

1

主题

1

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2023-3-26 16:42:36 | 显示全部楼层
第144行在119行函数里已经初始化过了,不太理解为什么还需要再来一次
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2023-3-27 09:30:13 | 显示全部楼层
楼主描述的不太清晰,用的那款芯片,那个地方又初始化了一次?

如果用ST的芯片,直接使用ST提供的HAL库SD现成驱动文件即可,以H7为例就是这个,直接调用就可以使用:

https://github.com/STMicroelectr ... tm32h743i_eval_sd.c
回复

使用道具 举报

1

主题

1

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2023-3-27 14:27:02 | 显示全部楼层
eric2013 发表于 2023-3-27 09:30
楼主描述的不太清晰,用的那款芯片,那个地方又初始化了一次?

如果用ST的芯片,直接使用ST提供的HAL库S ...

stm32l4系列的,第119行的MX_SDMMC1_SD_Init(void)已经调用过HAL_SD_InitCard(&hsd1)进行SD卡初始化,但是还需要在begin2里144行再初始化一次才能正常读写,请问这是为什么呢(119行MX_SDMMC1_SD_Init(void)函数内部如下)
[C] 纯文本查看 复制代码
void MX_SDMMC1_SD_Init(void)
{

  /* USER CODE BEGIN SDMMC1_Init 0 */
	
  /* USER CODE END SDMMC1_Init 0 */

  /* USER CODE BEGIN SDMMC1_Init 1 */

  /* USER CODE END SDMMC1_Init 1 */
  hsd1.Instance = SDMMC1;
  hsd1.Init.ClockEdge = SDMMC_CLOCK_EDGE_RISING;
  hsd1.Init.ClockBypass = SDMMC_CLOCK_BYPASS_DISABLE;
  hsd1.Init.ClockPowerSave = SDMMC_CLOCK_POWER_SAVE_DISABLE;
  hsd1.Init.BusWide = SDMMC_BUS_WIDE_1B;
  hsd1.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_DISABLE;
  hsd1.Init.ClockDiv = 0;
  if (HAL_SD_Init(&hsd1) != HAL_OK)
  {
    Error_Handler();
  }
  if (HAL_SD_ConfigWideBusOperation(&hsd1, SDMMC_BUS_WIDE_4B) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN SDMMC1_Init 2 */

  /* USER CODE END SDMMC1_Init 2 */

}
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 18:16 , Processed in 0.262192 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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