запись данных на сд карту
Я использую простой код в 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 должны быть подключены как подтягивающие.