fatfs文件系统 f_open返回9号错误

2019-07-21 01:02发布

本人刚刚开始学习stm32
用的是原子店中买的stm32l4系列的板子给的示例代码
在中间多加了几行创建并写入文件的代码
但是f_open的返回值一直为9
请问这个代码是缺少什么东西吗
里面用到了flash是干啥的
我就只是想简单的往卡中写个txt文件

u32 total, free;
    u8 t = 0;
    u8 res = 0;
    HAL_Init();
    SystemClock_Config();  
    delay_init(80);   
    uart_init(115200);   
    usmart_dev.init(80);  
    LED_Init();   
    KEY_Init();   
    LCD_Init();   
    W25QXX_Init();   
    my_mem_init(SRAM1);  
    my_mem_init(SRAM2);  
    POINT_COLOR = RED;
    Display_ALIENTEK_LOGO(0, 0);
    LCD_ShowString(30, 80, 200, 16, 16, "Pandora STM32L4 IOT");
    LCD_ShowString(30, 100, 200, 16, 16, "FATFS TEST");
    LCD_ShowString(30, 120, 200, 16, 16, "ATOM@ALIENTEK");
    LCD_ShowString(30, 140, 200, 16, 16, "2018/10/27");
    LCD_ShowString(30, 160, 200, 16, 16, "Use USMART For Test");
    while(SD_Init())//¼ì²â²»µ½SD¿¨
    {
        LCD_ShowString(30, 180, 200, 16, 16, "SD Card Error!");
        delay_ms(500);
        LCD_ShowString(30, 180, 200, 16, 16, "Please Check! ");
        delay_ms(500);
        LED_B_TogglePin;//DS0ÉÁ˸
    }
    exfuns_init();        
    f_mount(fs[0], "0:", 1);      
    res = f_mount(fs[1], "1:", 1);     
    if(res == 0X0D) //FLASH´ÅÅÌ,FATÎļþϵͳ´íÎó,ÖØиñʽ»¯FLASH
    {
        LCD_ShowString(30, 180, 200, 16, 16, "Flash Disk Formatting...");
        res = f_mkfs("1:", 1, 4096);
        if(res == 0)
        {
            f_setlabel((const TCHAR *)"1:ALIENTEK");
            LCD_ShowString(30, 180, 200, 16, 16, "Flash Disk Format Finish");
        }
        else LCD_ShowString(30, 180, 200, 16, 16, "Flash Disk Format Error ");
        delay_ms(1000);
    }
  

  
  FIL * fp;
  UINT bw;
  char a[]="hello ";
  

  f_open(fp,"0:data.txt",FA_WRITE|FA_READ|FA_CREATE_ALWAYS);
  f_write(fp,a,20,&bw);
  f_close(fp);
  
  


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。