cancel
Showing results for 
Search instead for 
Did you mean: 

im trying to write data on sd card but it Doesn't Work :

YKh.1
Associate

 I use a simple code in stm32 for SD card.

The code is written in "int main(void)" section. I am trying to configure a SD card so that as soon as the STM32F750vbt6 turn on, a file is created in the SD card and a text is written in the file.

when I turn the STM32F750vbt6 on, this does not happen and nothing is written in the SD card but when the code reaches to the "while" section (I have written an LED blink code inside the while section) and I reset the micro controller using RST pin of the STM32F750vbt6, the device works properly and a text is written in the sd card.

How can I fix this? Why is there a need for resetting the device for the code to work?

const char wtext[] = "hi world";
      int main(void)
    {
        FRESULT res; /* FatFs function common result code */
        uint32_t byteswritten, bytesread; /* File write/read counts */
      MPU_Config();
      HAL_Init();
      SystemClock_Config();
      MX_GPIO_Init();
      MX_SDMMC1_SD_Init();
      MX_FATFS_Init();
      if(retSD == 0)
        {
         if(f_mount(&SDFatFs, (TCHAR const*)SDPath, 0) == FR_OK)
         {
        if(f_open(&MyFile, "file.txt", FA_CREATE_ALWAYS | FA_WRITE) ==FR_OK)
        {
        f_write(&MyFile, wtext, sizeof(wtext), (void*)&byteswritten);
        f_close(&MyFile);
        }
        }
        }
        FATFS_UnLinkDriver(SDPath);
      while (1)
      {
          HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
          HAL_Delay(2000);
          HAL_GPIO_WritePin(LED1_GPIO_Port, LED2_Pin, GPIO_PIN_RESET);
          HAL_Delay(2000);
      }
    }

1 REPLY 1
KDJEM.1
ST Employee

Hi @YKh.1​ ,

If you use the STM32CubeIDE, I advise you to follow this article may help you.

Kaouthar

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.