打印
[STM32F1]

单片机U盘程序问题

[复制链接]
446|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
flycamelaaa|  楼主 | 2024-7-29 11:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F105 U盘程序问题 单片机刚上电第一次插入U盘进行读写操作会失败但f_open()函数可以成功f_close()也可以成功,调用f_write()和f_read()会显示底层IO错误A hard error occurred in the low level disk I/O layer请问这是怎么回事?就是单片机上电必须插拔一次U盘才可以正常调用f_write和f_read函数

f_mount(),f_open(),f_lseek(),f)close()全都没有问题,只有当调用f_write(),和f_read()会显示A hard error occurred in the low level disk I/O layer,但是插拔完一次f_write(),和f_read()就可以使用了

使用特权

评论回复
沙发
kzlzqi| | 2024-7-29 15:02 | 只看该作者
某些U盘在电源上电后,可能需要一些时间来完成自检或初始化,这可能导致在初始化期间的读写操作失败。

使用特权

评论回复
板凳
范德萨发额| | 2024-7-29 15:46 | 只看该作者
虽然 f_mount() 成功,但U盘在第一次插入时可能还没有完全准备好,导致 f_write() 和 f_read() 失败。

使用特权

评论回复
地板
elephant00| | 2024-7-29 21:18 | 只看该作者
USB枚举延迟所致?

使用特权

评论回复
5
两只袜子| | 2024-7-29 21:19 | 只看该作者
在调用f_mount()之后,加入适当的延时(如几百毫秒到一秒),确保USB设备已经完全枚举和准备好。

使用特权

评论回复
6
jcky001| | 2024-7-29 21:19 | 只看该作者
如果U盘的电源或数据信号在单片机上电时不够稳定,可能会导致首次枚举或通信失败

使用特权

评论回复
7
cr315| | 2024-7-29 21:19 | 只看该作者
检查电源供应是否稳定,确保USB数据线的质量良好,尝试使用不同的USB线和U盘进行测试。

使用特权

评论回复
8
duo点| | 2024-7-29 21:20 | 只看该作者
文件系统挂载问题,尽管f_mount()可能返回成功,但实际上文件系统可能还没有完全挂载或准备好。

使用特权

评论回复
9
laocuo1142| | 2024-7-29 21:21 | 只看该作者
在f_mount()之后,可以尝试通过查询USB设备的状态或使用更详细的调试信息来确认文件系统状态。

使用特权

评论回复
10
flycamelaaa|  楼主 | 2024-7-29 21:21 | 只看该作者

使用特权

评论回复
11
powerantone| | 2024-7-29 21:22 | 只看该作者
更新到最新的库版本,或尝试使用不同的库

使用特权

评论回复
12
stormwind123| | 2024-7-29 21:23 | 只看该作者
USB主机控制器的初始化是否有误

使用特权

评论回复
13
probedog| | 2024-7-29 21:23 | 只看该作者
重新检查电路设计,必要时进行修改或优化。

使用特权

评论回复
14
classroom| | 2024-7-29 21:24 | 只看该作者
尝试使用不同类型的U盘进行测试,看问题是否依旧存在。

使用特权

评论回复
15
申小林一号| | 2024-7-29 22:36 | 只看该作者
感谢分享

使用特权

评论回复
16
学生会那点事ya| | 2024-8-31 22:38 | 只看该作者
在第一次插入 U 盘时,确保 U 盘的初始化和文件系统挂载完成。如果 U 盘的初始化未完全完成,可能会导致读写操作失败。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

645

主题

2670

帖子

0

粉丝