ST意法半导体
直播中

一曲作罢

9年用户 890经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术
私信 关注
[问答]

为什么使用CubeMX生成代码其SD卡无法正确初始化呢

已尝试使用不同计算机的早期版本的 CubeMX。做同样的事情。看不到 init 结构的任何使用(它是本地的)。SD 卡未正确初始化。  
生成的完整代码是:
  • tatic 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;
  •   /* USER CODE BEGIN SDMMC1_Init 2 */
  •   /* USER CODE END SDMMC1_Init 2 */
  • }

这对我来说似乎不完整。尝试将此代码与 BSP 驱动程序代码进行比较表明某处需要更多代码。
如果我缺少某个设置,我想知道它。早期版本(大约 2018 年)也是这样做的,所以缺少了一些东西。FATFS 已启用,SDIO 或多或少具有适当的参数。



回帖(1)

王玲

2022-12-20 15:55:50
这不是没有用的。它初始化句柄。句柄是全局的。
我使用了 CubeMX 从默认项目生成的代码。
是的,在 FatFS 之上的通用 HAL 代码之上处理低级 SD 驱动程序时,会进行大量的重定向/混淆,而 FatFS 本身就是混淆的。这很不幸,但这是 C 库的常态。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分