запись данных на сд карту

Я использую простой код в stm32 для SD-карты.

Код написан в секции "int main(void)". Пытаюсь настроить SD-карту, чтобы как только STM32F750vbt6 включался, на SD-карте создавался файл и в файл писался текст.

когда я включаю STM32F750vbt6, этого не происходит, и на SD-карту ничего не записывается, но когда код доходит до раздела «пока» (внутри раздела «пока» я написал код мигания светодиода), и я сбрасываю микроконтроллер с помощью RST пин STM32F750vbt6, устройство работает исправно и на SD карту пишется текст.

Как я могу это исправить? Почему для работы кода необходима перезагрузка устройства?

это мой код:

      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 ответ

Проблема заключалась в том, что устройство не работало с портов. Порты данных и CMD должны быть подключены как подтягивающие.

Другие вопросы по тегам