本帖最后由 dabendan001 于 2019-5-12 10:43 编辑 从github上搬来的FATFS v0.12c代码;往U盘里文本文件写任意写符串(不超过30个字符)。第一次插入U盘失败,拔掉U盘再插入,就能写成功。 何故?? FATFS v0.12c源码:http://github.com/stm32duino/FatFs/tree/master/src char *STR = "aa132cv41654654464rtyrryryrydfgs"; fr = f_open(&fil ,"0:t123.txt",FA_OPEN_ALWAYS|FA_WRITE|FA_READ); if(fr == FR_OK) { printf("文件打开成功!\r\n"); //__disable_irq(); fr = f_write(&fil,STR,strlen(STR),(UINT*)fw); //__enable_irq(); if(fr == FR_OK) { printf("数据写入完成!\r\n"); } else { printf("数据写入失败!\r\n"); } //HAL_Delay(200); fr = f_close(&fil); //首次加电,写入U盘失败时,此处返回 1 ; if(fr == FR_OK) { printf("\r\n文件关闭成功.\r\n"); printf("打印关闭文件代码:%d\r\n",fr); } else { printf("\r\n文件关闭失败!\r\n"); printf("打印关闭文件代码:%d\r\n",fr); } } |
评分
查看全部评分
谢谢!
之前用的fatfs v0.11正常。
但这个版本不支持exFAT格式,所以才换v0.12版本。遇到上述问题。
你这是要多大啊,连 exFAT 都用上了。如果写入的文件这么大,改走网络也许可以更靠谱一点。(数据不滞留在设备上,随时采集随时上传。)而且 exFAT 还有专利授权问题,商用产品里面尽量别用。
其实不需要往U盘里写大文件,支持exFAT的目的只有一个:能扫描枚举出U盘里的文件名,即可。
如果是这样的话根本用不到支持 exFAT 啊?
??似乎是需要呢。
目前64GB以上的U盘,格式化时(win10),只能选择NTFS 或exFAT格式。