FatFs f_open FR_DISK_ERR

问题描述

我正在尝试使用 stm32f107 将数据写入 USB 记忆棒。主要功能是:

while (1)
  {
    /* USER CODE END WHILE */


    MX_USB_HOST_Process();

    /* USER CODE BEGIN 3 */
     switch(Appli_state)
                {
                    case APPLICATION_IDLE:
                        break;
                    case APPLICATION_START:
                        counter_start++;
                        if(f_mount(&myUsbFatFS,(TCHAR const*)USBH_Path,0) == FR_OK)
                            {
                               UsbTest_Write();
                            }
                        break;
                    case APPLICATION_READY:
                        break;

                    case APPLICATION_disCONNECT:
                        break;
                }

      }

函数是:

bool UsbTest_Write(void)
{
    //Open or Create file for writing
    if(f_open(&myFile,"a.csv",FA_WRITE | FA_OPEN_ALWAYS ) != FR_OK)
    {
        return 0;
    }
    //copy test Text to my temporary read/write buffer
    f_lseek(&myFile,myFile.fsize);
    sprintf(rwtext,"test\n");
    //Write to text file
    res = f_write(&myFile,(const void *)rwtext,strlen(rwtext),&byteswritten);
    if((res != FR_OK) || (byteswritten == 0))
    {
        return 0;

        f_close(&myFile);
    }
    f_close(&myFile);
    return 1; //Success
}

我有 2GB 的 USB 记忆棒,它可以正常工作。当我尝试写入 8GB 和 16GB 的其他记忆棒时,它不会写入。我调试并

f_open()->find_volume()->get_ldnumber()

get_idnumber() 函数返回 0,所以 f_open() 函数返回 FR_disK_ERR。

可能是什么原因以及如何解决这个问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...