STM32F105RB通过FATFS0.12C写U盘失败!
本帖最后由 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);
}
}
给我的感觉好像问题在于 USB。检查一下你的代码对于 USB 插入的处理,特别是上电时就已经有 USB 设备这个情况。 maxtch 发表于 2019-5-14 14:43
给我的感觉好像问题在于 USB。检查一下你的代码对于 USB 插入的处理,特别是上电时就已经有 USB 设备这个情 ...
谢谢!
之前用的fatfs v0.11正常。
但这个版本不支持exFAT格式,所以才换v0.12版本。遇到上述问题。 dabendan001 发表于 2019-5-19 23:13
谢谢!
之前用的fatfs v0.11正常。
你这是要多大啊,连 exFAT 都用上了。如果写入的文件这么大,改走网络也许可以更靠谱一点。(数据不滞留在设备上,随时采集随时上传。)而且 exFAT 还有专利授权问题,商用产品里面尽量别用。 maxtch 发表于 2019-5-19 23:35
你这是要多大啊,连 exFAT 都用上了。如果写入的文件这么大,改走网络也许可以更靠谱一点。(数据不滞留 ...
其实不需要往U盘里写大文件,支持exFAT的目的只有一个:能扫描枚举出U盘里的文件名,即可。 dabendan001 发表于 2019-5-23 12:00
其实不需要往U盘里写大文件,支持exFAT的目的只有一个:能扫描枚举出U盘里的文件名,即可。 ...
如果是这样的话根本用不到支持 exFAT 啊? maxtch 发表于 2019-5-23 12:17
如果是这样的话根本用不到支持 exFAT 啊?
??似乎是需要呢。
目前64GB以上的U盘,格式化时(win10),只能选择NTFS 或exFAT格式。
页:
[1]