stm32f407 最大能读多少G的U盘

2020-01-04 19:00发布

我4G的U盘能读能写,但是8G的U盘只能枚举成功。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
rabbitgg
1楼-- · 2020-01-05 17:15
用官方例子,试过16G的,没问题,手边没有更大的了
USACH
2楼-- · 2020-01-05 22:23
fat如何才能读8G?

fat最大的文件系统是4G。
i_kkyu
3楼-- · 2020-01-06 02:48
 精彩回答 2  元偷偷看……
zhcj66
4楼-- · 2020-01-06 02:53
Eric2013 发表于 2013-6-24 14:02
貌似不是大小的问题,是官方库的兼容性问题

  1. //sd卡数据复制到U盘
  2. void SDDataToUpanProcess(void)
  3. {
  4. //FATFS fs_;        //逻辑磁盘工作区
  5. FIL U_fdst;        //文件
  6. FRESULT res;//状态变量
  7. typedef unsigned int        UINT;
  8. UINT br_,bw_;
  9.         res = f_open(&U_fdst,"2:1.txt",FA_WRITE | FA_CREATE_ALWAYS);        //打卡U盘
  10.         if(res !=FR_OK){DEBUG_printf("U_open_ERR:%d ",res); return ;}
  11.         else{DEBUG_printf("U_open_OK ");}
  12.         
  13.         while(1)
  14.         {
  15.                 res = f_write(&U_fdst,"1234578 ",10,&bw_);    在这里不出来不知道为什么?
  16.                 res = res;
  17.                 if(res || bw_ < br_){DEBUG_printf("U_write_error disk full:%d-%d ",res,bw_); break ;}
  18.         }
  19.         f_close(&U_fdst);
  20.         DEBUG_printf("f_close ");
  21. }
复制代码
复制代码
res = f_write(&U_fdst,"1234578 ",10,&bw_);    在这里不出来不知道为什么?



下面的代码创建1.txt文件是正常的

  1. //sd卡数据复制到U盘
  2. void SDDataToUpanProcess(void)
  3. {
  4. //FATFS fs_;        //逻辑磁盘工作区
  5. FIL U_fdst;        //文件
  6. FRESULT res;//状态变量
  7. typedef unsigned int        UINT;
  8. UINT br_,bw_;
  9.         res = f_open(&U_fdst,"2:1.txt",FA_WRITE | FA_CREATE_ALWAYS);        //打卡U盘
  10.         if(res !=FR_OK){DEBUG_printf("U_open_ERR:%d ",res); return ;}
  11.         else{DEBUG_printf("U_open_OK ");}
  12.         
  13.         f_close(&U_fdst);
  14.         DEBUG_printf("f_close ");
  15. }
  16. 复制代码
复制代码


下面的读取代码是正常的
  1.         res=f_open (&U_fdst,"2:/1.txt", FA_READ);          //读方式打开配置文件
  2. //        f_lseek(&fil0,i*6);             //每次读取之前先移动读写指针达到读写不同数据的目的
  3.     if(res !=FR_OK){DEBUG_printf("ERR:%d ",res);}
  4.         res=f_read (&U_fdst, buf,100,&br_);                        //读取文件到buf
  5.         if(res !=FR_OK){DEBUG_printf("ERR:%d ",res);}
  6.         f_close(&U_fdst);                                                                        //关闭文件
  7. //        configbound = atol(buf);                                                 //使用stdlib.h头文件里面的函数将字符串转换为数字
  8.         printf("读取1.txt配置文件 内容为: %s ",buf);//将数字使用printf函数输出
复制代码

一周热门 更多>