你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F105RB通过FATFS0.12C写U盘失败!

[复制链接]
dabendan001 提问时间:2019-5-12 10:39 /
本帖最后由 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);

                                }
                                
                        }
收藏 评论6 发布时间:2019-5-12 10:39

举报

6个回答
maxtch 回答时间:2019-5-14 14:43:44
给我的感觉好像问题在于 USB。检查一下你的代码对于 USB 插入的处理,特别是上电时就已经有 USB 设备这个情况。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

dabendan001 回答时间:2019-5-19 23:13:15
maxtch 发表于 2019-5-14 14:43
给我的感觉好像问题在于 USB。检查一下你的代码对于 USB 插入的处理,特别是上电时就已经有 USB 设备这个情 ...

谢谢!

之前用的fatfs v0.11正常。
但这个版本不支持exFAT格式,所以才换v0.12版本。遇到上述问题。
maxtch 回答时间:2019-5-19 23:35:37
dabendan001 发表于 2019-5-19 23:13
谢谢!

之前用的fatfs v0.11正常。

你这是要多大啊,连 exFAT 都用上了。如果写入的文件这么大,改走网络也许可以更靠谱一点。(数据不滞留在设备上,随时采集随时上传。)而且 exFAT 还有专利授权问题,商用产品里面尽量别用。
dabendan001 回答时间:2019-5-23 12:00:16
maxtch 发表于 2019-5-19 23:35
你这是要多大啊,连 exFAT 都用上了。如果写入的文件这么大,改走网络也许可以更靠谱一点。(数据不滞留 ...

其实不需要往U盘里写大文件,支持exFAT的目的只有一个:能扫描枚举出U盘里的文件名,即可。
maxtch 回答时间:2019-5-23 12:17:48
dabendan001 发表于 2019-5-23 12:00
其实不需要往U盘里写大文件,支持exFAT的目的只有一个:能扫描枚举出U盘里的文件名,即可。 ...

如果是这样的话根本用不到支持 exFAT 啊?
dabendan001 回答时间:2019-5-23 12:36:12
maxtch 发表于 2019-5-23 12:17
如果是这样的话根本用不到支持 exFAT 啊?

??似乎是需要呢。
目前64GB以上的U盘,格式化时(win10),只能选择NTFS 或exFAT格式。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版