OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 366|回复: 12

STM32F407的USB数据导出问题

[复制链接]

24

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
819
金钱
819
注册时间
2016-8-21
在线时间
171 小时
发表于 2025-10-22 13:28:36 | 显示全部楼层 |阅读模式
1金钱
数据以.txt格式导出,单片机下载程序后,能够正常的读写,然后拔下U盘,U盘中的数据在电脑上看也是正常的,然后在电脑上将U盘中的.txt文件删除掉,再用单片机识别,也能识别到,只是单片机在扫描文件时,发现之前在电脑上删除的U盘txt文件还存在,造成后续U盘读写出现问题,想问下这种问题如何解决?

最佳答案

查看完整内容[请看2#楼]

当然,U盘拔掉要umount,插入要重新mount
回复

使用道具 举报

2

主题

475

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4847
金钱
4847
注册时间
2018-5-14
在线时间
1021 小时
发表于 2025-10-22 13:28:37 | 显示全部楼层
kui 发表于 2025-10-22 15:05
umount是挂载U盘吗?意思是拔出u盘后,要再次挂载U盘才可以吗?

当然,U盘拔掉要umount,插入要重新mount
回复

使用道具 举报

2

主题

475

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4847
金钱
4847
注册时间
2018-5-14
在线时间
1021 小时
发表于 2025-10-22 14:55:37 | 显示全部楼层
明显是拔出U盘。单片机程序没有umount,导致文件链表没有更新。
回复

使用道具 举报

24

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
819
金钱
819
注册时间
2016-8-21
在线时间
171 小时
 楼主| 发表于 2025-10-22 15:05:40 | 显示全部楼层
姚先起 发表于 2025-10-22 14:55
明显是拔出U盘。单片机程序没有umount,导致文件链表没有更新。

umount是挂载U盘吗?意思是拔出u盘后,要再次挂载U盘才可以吗?
回复

使用道具 举报

24

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
819
金钱
819
注册时间
2016-8-21
在线时间
171 小时
 楼主| 发表于 2025-10-22 15:11:02 | 显示全部楼层
姚先起 发表于 2025-10-22 15:07
当然,U盘拔掉要umount,插入要重新mount

感谢大神指导,重新挂载U盘后,问题解决
回复

使用道具 举报

24

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
819
金钱
819
注册时间
2016-8-21
在线时间
171 小时
 楼主| 发表于 2025-11-17 12:03:50 | 显示全部楼层
姚先起 发表于 2025-10-22 14:55
明显是拔出U盘。单片机程序没有umount,导致文件链表没有更新。

大神,再请教一个问题,USB在导出数据时,发现导出数据超过20000左右字节时,会返回FR_INVALID_OBJECT错误码,导致数据写入不了u盘,这是什么原因造成的?
回复

使用道具 举报

2

主题

475

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4847
金钱
4847
注册时间
2018-5-14
在线时间
1021 小时
发表于 2025-11-17 13:01:50 | 显示全部楼层
kui 发表于 2025-11-17 12:03
大神,再请教一个问题,USB在导出数据时,发现导出数据超过20000左右字节时,会返回FR_INVALID_OBJECT错 ...

应该不是超过2000字的原因,有没有用到rtos,多任务不能同时以写入方式打开一个文件,频繁读写的文件建议不要每次open和close
回复

使用道具 举报

24

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
819
金钱
819
注册时间
2016-8-21
在线时间
171 小时
 楼主| 发表于 2025-11-17 13:35:21 | 显示全部楼层
姚先起 发表于 2025-11-17 13:01
应该不是超过2000字的原因,有没有用到rtos,多任务不能同时以写入方式打开一个文件,频繁读写的文件建议 ...

没有用rtos
回复

使用道具 举报

24

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
819
金钱
819
注册时间
2016-8-21
在线时间
171 小时
 楼主| 发表于 2025-11-17 13:40:02 | 显示全部楼层
姚先起 发表于 2025-11-17 13:01
应该不是超过2000字的原因,有没有用到rtos,多任务不能同时以写入方式打开一个文件,频繁读写的文件建议 ...

先是扫描文件,然后open-writr-close,就是这样的步骤,因数据量较大,write时每512字节write一次,直至数据写入完成,但是从调试结果看,第一次写入时就返回FR_INVALID_OBJECT这个错误
回复

使用道具 举报

24

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
819
金钱
819
注册时间
2016-8-21
在线时间
171 小时
 楼主| 发表于 2025-11-17 14:53:14 | 显示全部楼层
kui 发表于 2025-11-17 13:40
先是扫描文件,然后open-writr-close,就是这样的步骤,因数据量较大,write时每512字节write一次,直至数 ...

今天又测试了一下,确切的说是导出数据超过16k时,会返回FR_INVALID_OBJECT错误码
回复

使用道具 举报

24

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
819
金钱
819
注册时间
2016-8-21
在线时间
171 小时
 楼主| 发表于 2025-11-17 17:10:59 | 显示全部楼层
姚先起 发表于 2025-11-17 13:01
应该不是超过2000字的原因,有没有用到rtos,多任务不能同时以写入方式打开一个文件,频繁读写的文件建议 ...

进行仿真了一下,发现是导入数据大于16k字节时,在文件扫描时会返回FR_NOT_ENABLED错误码
回复

使用道具 举报

2

主题

475

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4847
金钱
4847
注册时间
2018-5-14
在线时间
1021 小时
发表于 2025-11-18 08:50:31 | 显示全部楼层
kui 发表于 2025-11-17 17:10
进行仿真了一下,发现是导入数据大于16k字节时,在文件扫描时会返回FR_NOT_ENABLED错误码

可能是你的USB驱动上的问题,或者是SD卡驱动的问题,在写入16K字节,正好是一个扇区,在跨扇区写入上的驱动存在错误
回复

使用道具 举报

24

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
819
金钱
819
注册时间
2016-8-21
在线时间
171 小时
 楼主| 发表于 2025-11-20 12:17:23 | 显示全部楼层
姚先起 发表于 2025-11-18 08:50
可能是你的USB驱动上的问题,或者是SD卡驱动的问题,在写入16K字节,正好是一个扇区,在跨扇区写入上的驱 ...

谢谢大神的回复,这个问题已经解决了,是内存分配的问题
回复

使用道具 举报

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

本版积分规则


关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-12-6 08:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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