2016-10-28 3 views
1

Я пытаюсь интерфейс SD-карты с STM32F4, но что-то не работает, код был разработан с использованием cubemxSD карта не может читать писать STM32f4

  1. интерфейс SDIO 1-битного режима (из-за ограничения придавить)
  2. SD карта 8 Gb отформатированный с размером кластера по умолчанию

шаги, предпринятые для отладки:

Я за один шаг через код fmount является успешным, но когда я шаг через fopen есть код ошибки на find_volume() возвращение FR_NOT_READY.

Аппаратные conections:

У меня есть Arduino микро прорыве SD платы с SPI булавками так соединения являются

  • DI → SDIO_CMD
  • DO → SDIO_D0
  • SCLK → SDIO_SCLK

int main(void) 
{ 
    /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ 
    HAL_Init(); 

    /* Configure the system clock */ 
    SystemClock_Config(); 

    /* Initialize all configured peripherals */ 
    MX_GPIO_Init(); 
    MX_SDIO_SD_Init(); 
    MX_FATFS_Init(); 

    HAL_Delay(1000); 

    /* USER CODE BEGIN 2 */ 
    if(f_mount(&mynewdiskFatFs,(const TCHAR*)SD_Path, 0) == FR_OK) 
    { 
     if(f_open(&MyFile, "abc.txt", FA_READ) == FR_OK) 
     { 
      // GPIO_SetBits(GPIOD, GPIO_Pin_15); 
      if(f_read(&MyFile, wtext, sizeof(wtext), (void *)&wbytes) ==FR_OK); 
      { 
       f_close(&MyFile); 
      } 
     } 
    } 

    while (1) 
    { 

    } 
} 
+1

SD-карта не будет работать без CS (выбор микросхемы). –

ответ

-1

Привет turboJ Я интерфейс SD карты, используя 1 битовый режим SDIO, так что нет смысла CS я думаю

+0

В этом случае DAT3 должен быть высоко поднят и не должен быть разомкнутым. –

+0

Обратите внимание, что экраны, предназначенные для режима SPI с использованием однонаправленных переключателей уровня, могут не работать в режиме SDIO. –

0
f_open(&MyFile, "abc.txt", FA_READ) 

Посмотрите, что ваши варианты конфигурации в ffconf.h относительно имен файлов.

Попробуйте использовать (FA_OPEN_EXISTING | FA_READ) флаги.

Повторно используйте f_open() с интервалом 100 мс, например 5 раз, до тех пор, пока он не вернет FR_OK.