硬汉嵌入式论坛

 找回密码
 立即注册
查看: 698|回复: 6
收起左侧

[FatFs] 写文件丢失数据

[复制链接]

75

主题

683

回帖

908

积分

金牌会员

积分
908
发表于 2023-8-1 16:55:52 | 显示全部楼层 |阅读模式
stm32+fatfs写外接优盘的时候,很多文件都丢失了字节有人遇到过吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-8-1 17:21:12 | 显示全部楼层
每次f_wrtie后,有判断返回值没,如果正常的话,得排查下底层驱动了。
回复

使用道具 举报

75

主题

683

回帖

908

积分

金牌会员

积分
908
 楼主| 发表于 2023-8-1 19:01:34 | 显示全部楼层
eric2013 发表于 2023-8-1 17:21
每次f_wrtie后,有判断返回值没,如果正常的话,得排查下底层驱动了。

都有判断,但是没有判断需要写的和实际写的是否一直,返回值res有通过的。不知道是不是和优盘有关
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-8-2 09:29:40 | 显示全部楼层
庄永 发表于 2023-8-1 19:01
都有判断,但是没有判断需要写的和实际写的是否一直,返回值res有通过的。不知道是不是和优盘有关

写入函数有返回有效的写入字节数,这个也判断了没,第4个参数

[C] 纯文本查看 复制代码
FRESULT f_write (
  FIL* fp,          /* [IN] Pointer to the file object structure */
  const void* buff, /* [IN] Pointer to the data to be written */
  UINT btw,         /* [IN] Number of bytes to write */
  UINT* bw          /* [OUT] Pointer to the variable to return number of bytes written */
);

回复

使用道具 举报

75

主题

683

回帖

908

积分

金牌会员

积分
908
 楼主| 发表于 2023-8-2 22:48:54 | 显示全部楼层
eric2013 发表于 2023-8-2 09:29
写入函数有返回有效的写入字节数,这个也判断了没,第4个参数

[mw_shl_code=c,true]FRESULT f_write ( ...

没有判断btw和bw是否相等,只判断返回值和bw是否为0
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-8-3 08:24:55 | 显示全部楼层
庄永 发表于 2023-8-2 22:48
没有判断btw和bw是否相等,只判断返回值和bw是否为0

每次新的写入在前面bw的基础上操作比较靠谱。
回复

使用道具 举报

75

主题

683

回帖

908

积分

金牌会员

积分
908
 楼主| 发表于 2023-8-3 08:52:35 | 显示全部楼层
eric2013 发表于 2023-8-3 08:24
每次新的写入在前面bw的基础上操作比较靠谱。

感谢硬汉指导
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 07:15 , Processed in 0.282174 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表