STM32F429的USB读取U盘的问题,挂载总是失败,返回FR_NOT_ENABLED,可能是哪里的问题呢?

2019-07-20 16:01发布

我用的是STM32F429ZET6,用的uCosII系统,文件系统是FATFS,uCosII和文件系统都已经移植成功,因为外接的Flash芯片可以正常使用FATFS操作.没有用HAL库,USB是移植的原子的F407的<<实验53 USB U盘(Host)实验>>,串口打印提示检测到了U盘,但是f_mount时始终返回FR_NOT_ENABLED,可能是哪里的问题呢?我使用原子的F429的例程<<实验56 USB U盘(Host)实验>>测试可以正常操作U盘,读写格式化都没问题,这就说明我硬件都是没问题的.我将F429例程的的USB相关的全部移植到我自己的代码,貌似就时钟和库不一样,我时钟用的180M,标准固件库,不是HAL库,结果还是不行,一样的错误.看原子教程文档写的USB时钟使用的48M,但是没看到有分频函数啊(原子F429的教程使用的是192M),是哪里将USB时钟设置成了48M呢?F407的也没看到有将USB时钟配置成48M.USB的时钟必须使用48M吗?我的U盘f_mount总是失败是不是就是这个问题呢?烦请大家帮我看看是什么问题.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
隨颩洏過
1楼-- · 2019-07-20 19:10
ytuljj 发表于 2017-3-22 15:23
你这个问题前不久我也遇到了,你重点检查一下文件系统里面的disk.c文件的U盘初始化驱动以及读写驱动是不是 ...

谢谢你的详细分析!U盘挂载和读写都调通了,昨天挂载失败原因今天一步步追踪f_mount函数,发现貌似就是FATFS头文件里面的#define _VOLUMES        2        //支持2个磁盘但是我用的原子的例程f_mount(fs[3],"3:",1),所以出现挂载失败,返回12.但是今天测试发现有时候f_read成功,但是有时候会死在什么地方,有时候f_write也会死在什么地方,不知道什么原因....
隨颩洏過
2楼-- · 2019-07-20 21:54
呼叫原子大哥支援啊,从早上搞到现在都没查出问题在哪里.......
正点原子
3楼-- · 2019-07-21 00:57
在系统时钟设置函数,就决定了USB的频率,必须是48Mhz
liuqishigou
4楼-- · 2019-07-21 01:19
修改PLLM PLLn PLLp PLLq这几个参数就行
隨颩洏過
5楼-- · 2019-07-21 01:21
 精彩回答 2  元偷偷看……
隨颩洏過
6楼-- · 2019-07-21 06:30
 精彩回答 2  元偷偷看……

一周热门 更多>