2016-10-28 6 views
1

私はSTM32F4とSDカードのインタフェースにしようとしていますが、物事が働いていないの読み書きができない、コードが(制約をピンに起因する)cubemxにSDカードSTM32f4

  1. インタフェースであるSDIO 1ビットモードを使用して開発されましたGbは、デフォルトの割り当てサイズデバッグに取ら

手順でフォーマットさ

  • SDカード8:私はをステップするとき、私は、コードfmountを通じてステップを選抜

    は成功したがにエラーコードFR_NOT_READYを返します。

    ハードウェアconections:

    Iは、SPIピンとArduinoのマイクロSDブレイクアウトボードを有する接続そうである

    • 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(チップセレクト)なしではSDカードは動作しません。 –

    答えて

    -1

    こんにちはturboJ一切使用CSがないので、私は

    +0

    この場合、DAT3をハイに引き上げる必要があり、オープン回路であってはなりません。 –

    +0

    SDIOモードでは、一方向のレベルシフタを使用するSPIモード用のシールドが機能しないことに注意してください。 –

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

    を推測する1ビット幅のSDIOモードを使用してSDカードをインタフェースしていたファイル名に関するffconf.hであなたの設定オプションが何であるかを参照してください。

    (FA_OPEN_EXISTING | FA_READ)フラグを使用してみてください。

    FR_OKを返すまで100ms間隔、たとえば5回繰り返してf_open()を使用します。

    関連する問題