Skip to main content
Jack3
Senior
January 11, 2025
Solved

MX_SDMMC1_SD_Init missing HAL_SD_Init

  • January 11, 2025
  • 2 replies
  • 791 views

Hi, I'm using STM32CubeMX 6.13.0 and MCU STM32H753VITx.

When initializing the SDMMC1, I am missing the call to function HAL_SD_Init.

 

 

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.ClockPowerSave = SDMMC_CLOCK_POWER_SAVE_DISABLE;
 hsd1.Init.BusWide = SDMMC_BUS_WIDE_4B;
 hsd1.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_DISABLE;
 hsd1.Init.ClockDiv = 3;
 /* USER CODE BEGIN SDMMC1_Init 2 */

 /* USER CODE END SDMMC1_Init 2 */

}

 

 

 

Is it a bug? I expected someting like:

 

 

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.ClockPowerSave = SDMMC_CLOCK_POWER_SAVE_DISABLE;
 hsd1.Init.BusWide = SDMMC_BUS_WIDE_4B;
 hsd1.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_DISABLE;
 hsd1.Init.ClockDiv = 3;
 if (HAL_SD_Init(&hsd1) != HAL_OK)
 {
 Error_Handler();
 }

 /* USER CODE BEGIN SDMMC1_Init 2 */

 /* USER CODE END SDMMC1_Init 2 */

}

 

I posted the ioc file too.

 

Best answer by TDK

It's done in the BSP initialization here:

TDK_0-1736635836885.png

 

2 replies

AScha.3
Super User
January 11, 2025

Just write sd init here :

 /* USER CODE BEGIN SDMMC1_Init 2 */
 if (HAL_SD_Init(&hsd1) != HAL_OK)
 {
 Error_Handler();
 }
 /* USER CODE END SDMMC1_Init 2 */

...if you want init at program start. (Is same on older versions of IDE, so no bug, i suppose.)

"If you feel a post has answered your question, please click ""Accept as Solution""."
Jack3
Jack3Author
Senior
January 15, 2025

Yes, I did, but STM32CubeMX should have generated it on the right place.

TDK
TDKBest answer
Super User
January 11, 2025

It's done in the BSP initialization here:

TDK_0-1736635836885.png

 

"If you feel a post has answered your question, please click ""Accept as Solution""."