Skip to main content
Associate
February 11, 2026
Question

SD CARD reading issue using STM32H723ZGT6 Nucleo board

  • February 11, 2026
  • 1 reply
  • 183 views

Hai Everyone,

I am currently working with the STM32H723ZGT6 Nucleo board to implement basic SD card read and write functionality.
I have enabled RCC, configured HSE and PLL, and set the system clock to 240 MHz. The SDMMC kernel clock is sourced from PLL1Q at 48 MHz.
I tested the SD interface in both 1-bit mode and 4-bit wide bus mode. While the write operation is working correctly, I am unable to read data from the SD card.

I would appreciate it if someone could help me resolve this issue. Your support would be very helpful.

 

Thankyou.

 

Best Regards,

Aashritha

1 reply

mƎALLEm
Technical Moderator
February 11, 2026

Hello @Aashritha and welcome to the ST community,

I invite you to refer to the example provided in STM32H7Cube Package:

https://github.com/STMicroelectronics/STM32CubeH7/tree/master/Projects/STM32H735G-DK/Applications/FatFs

You are using Nucleo board. That one is using a disco board from which you can inspire the SD card config.

"To give better visibility on the answered topics, please click on ""Accept as Solution"" on the reply which solved your issue or answered your question."
AashrithaAuthor
Associate
February 13, 2026

Hai   mƎALLEm,

I've tried the above link package code in h723zgt6, but now I'm getting stuck in the below snippet that means the SD card is not getting response, as its returning error state. So please could you help me out. It will be very helpful to me.

uint32_t SDMMC_CmdAppCommand(SDMMC_TypeDef *SDMMCx, uint32_t Argument)

{

SDMMC_CmdInitTypeDef sdmmc_cmdinit;

uint32_t errorstate;



sdmmc_cmdinit.Argument = (uint32_t)Argument;

sdmmc_cmdinit.CmdIndex = SDMMC_CMD_APP_CMD;

sdmmc_cmdinit.Response = SDMMC_RESPONSE_SHORT;

sdmmc_cmdinit.WaitForInterrupt = SDMMC_WAIT_NO;

sdmmc_cmdinit.CPSM = SDMMC_CPSM_ENABLE;

(void)SDMMC_SendCommand(SDMMCx, &sdmmc_cmdinit);



/* Check for error conditions */

/* If there is a HAL_ERROR, it is a MMC card, else

it is a SD card: SD card 2.0 (voltage range mismatch)

or SD card 1.x */

errorstate = SDMMC_GetCmdResp1(SDMMCx, SDMMC_CMD_APP_CMD, SDMMC_CMDTIMEOUT);



return errorstate;

}

Thankyou

Best Regards,

Aashritha

 

 

 

 

mƎALLEm
Technical Moderator
February 13, 2026

1- In next time please use </> to share a code. Please read How to write your question to maximize your chances to find a solution. I'm editing your post then.

2- As you are a Nucleo board you need to check also the things to port adapt to the Nucleo board: clocks + IOS, etc .. The example above is working on a Disco board

"To give better visibility on the answered topics, please click on ""Accept as Solution"" on the reply which solved your issue or answered your question."