OpenEdv-开源电子网

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

关于stm32探索F407的USB HOST实验例程中的一个小BUG

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-3-11
在线时间
10 小时
发表于 2019-3-11 11:53:37 | 显示全部楼层 |阅读模式
      首先感谢原子哥代码的分享,以及代码的规整性。
      问题:在使用F407USB host的过程中,发现例程有一个小BUG:当挂载一个U盘的时候,可以毫无问题的给出U盘的容量和剩余空间,但是如果拔掉这个U盘,换个不同的U盘插入,会发现显示的容量仍然是前一个U盘的数据。
      原因分析:发现导致该问题的原因是因为在DeviceDisconnected的时候,好像仅仅改变了全局变量FatFs对应盘符中的fs_type变量的值,并未清空整个结构体中的原有数据。在计算容量和剩余空间时,程序进行了数据有效性的判断,避免了额外的读写开销。然而当新盘插入时,因为原有数据未能清空,且原有数据符合有效性分析。因此,插入的新盘并未进行基本的FATFS操作去读取容量,而是简单调取FatFs中的残存数据。导致了该错误的产生。
      解决方法:在尝试了usb状态机中以及主程序中对DeviceDisconnected的查询过程插入FatFs变量清空无果后,发现可以通过fmount函数解决该问题。原例程是在初始化中进行了U盘的mount的,现在将其改到了在USH_User_App中挂载U盘,也即是在确认了合理U盘插入后,完成了USB协议后,再进行FATFS初始化。
      目前,改后的程序运行正常。不过由于未能完全通读整个工程的代码,不知是否还有没有潜在的逻辑错误或者BUG。欢迎进一步指正!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17753
金钱
17753
注册时间
2018-3-3
在线时间
523 小时
发表于 2019-3-11 11:56:30 | 显示全部楼层
回复 支持 反对

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14407
金钱
14407
注册时间
2018-8-3
在线时间
1156 小时
发表于 2019-3-11 13:32:15 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2019-3-4
在线时间
4 小时
发表于 2019-3-11 13:59:53 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2019-3-2
在线时间
14 小时
发表于 2019-3-12 15:04:42 | 显示全部楼层
谢谢lz分享!
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
265
金钱
265
注册时间
2016-3-1
在线时间
105 小时
发表于 2019-3-12 17:12:57 | 显示全部楼层
谢谢楼主分享!
回复 支持 反对

使用道具 举报

0

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2019-3-4
在线时间
4 小时
发表于 2019-3-13 16:09:25 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

4

主题

33

帖子

0

精华

高级会员

Rank: 4

积分
557
金钱
557
注册时间
2016-4-10
在线时间
100 小时
发表于 2019-4-11 18:30:15 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2702
金钱
2702
注册时间
2019-4-24
在线时间
185 小时
发表于 2019-9-12 15:14:52 | 显示全部楼层

谢谢分享!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-16 11:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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