社区导航

 

搜索
楼主: alling

STM32F107读U盘程序---10多种盘已测试通过

[复制链接]

97

TA的帖子

0

TA的资源

禁止发言

发表于 2010-12-24 09:15 | 显示全部楼层
实际上,我认为问题最大的是enumerate后,应该采取哪些u盘命令,按照怎样的顺序去根u盘通信, 这些都没有一个权威的文档说明.

你试一下不用SPC_CMD_MODESENSE6, 看看可以不.

回复

使用道具 举报

106

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-24 09:34 | 显示全部楼层
                                 ST的读U盘的例子出来了,呵呵,去下载试试吧

回复

使用道具 举报

102

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-24 13:29 | 显示全部楼层
我是模拟xp的 呵呵 我和xp系统对U盘操作的结果是一样的
Host会依次发出 INQUIRY、Read Capacity、UFI Mode Sense请求,如果上述请求的返
回结果都正确,则 Host 会发出 READ 命令,读取文件系统 0 簇 0 扇区的 MBR 数据,进入
文件系统识别阶段。
对于PREVENT-ALLOW MEDIUM REMOVAL和TEST UNIT READY 命令, 只需直
接返回 CSW即可,对于后者,由于 Flash 盘总是处于 READY状态,故可直接返回 CSW。

这个是USB技术项目报告上写的 哎 悲剧 人倒霉喝凉水都塞牙 好不容易U盘可以进入文件系统阶段了 另外一个USB设备却一直反馈串扰错误 尴尬

回复

使用道具 举报

124

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-24 21:55 | 显示全部楼层
                                 "这个是USB技术项目报告上写的" ---  这个是什么东东?

回复

使用道具 举报

89

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-24 21:55 | 显示全部楼层
                                 还不错的资料

回复

使用道具 举报

112

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-25 12:29 | 显示全部楼层
                                 去百度搜下 下载来看看 呵呵 这个USB技术项目报告还好的

回复

使用道具 举报

95

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-25 15:17 | 显示全部楼层
楼主,你好
我试了一下你的代码,U盘枚举的时候失败了,跟踪了一下,是在UsbSetupTransaction的时候出错了
ChStatus=UsbReg.HCReg[0]->hc_int;检测到ChStatus为0x00000080而导致错误。这是为什么呢?
我用的是STM32F105R8

回复

使用道具 举报

108

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-25 16:13 | 显示全部楼层
Bit 7 TXERR: Transaction error
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP

查了一下,错误在这里,这是怎么回事?

回复

使用道具 举报

91

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-25 16:17 | 显示全部楼层
if(ChStatus&0x000003c2)
        {   //if there is: data toggle error, frame over run, babble error, tx error, channel halt, failure exit this function
            r=1;break;
        };
楼主,这里面应该不是0x000003c2,而应该是0x000007c2吧

回复

使用道具 举报

107

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-25 16:20 | 显示全部楼层
                                 我的程序是按照外部晶振25M配置的,如果你的晶振不是25M,你要自己配置RCC等,否则有可能出现你看到的错误。

回复

使用道具 举报

105

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-25 17:07 | 显示全部楼层
                                 楼主,这里面应该不是0x000003c2,而应该是0x000007c2吧  --- 这个是小问题

回复

使用道具 举报

101

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-25 17:17 | 显示全部楼层
谢谢楼主,搞定了,是晶振的问题,我的晶振是8M,重新配置了就能枚举了
我用ST提供的例程调试了一下,也能枚举,但还无法读写,创建等,晚上回来再看看

回复

使用道具 举报

102

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-25 18:21 | 显示全部楼层
                                 很好的资料,可以让后学习的人少走很多弯路

回复

使用道具 举报

99

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-25 21:46 | 显示全部楼层
                                 我的程序是按照外部晶振25M配置的,如果你的晶振不是25M,你要自己配置RCC等,否则有可能出现你看到的错误。 呵呵 这个还跟晶振有关的啊?尴尬 我貌似就直接把RCC时钟打开就上马 呵呵 这个时钟配置有何要求否?

回复

使用道具 举报

80

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-25 21:57 | 显示全部楼层
                                 the user manual will answer your question

回复

使用道具 举报

87

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-25 23:19 | 显示全部楼层
                                 我的程序是按照外部晶振25M配置的,如果你的晶振不是25M,你要自己配置RCC等,否则有可能出现你看到的错误。汗 晓得了 第一次看到可能理解有点偏差 呵呵 你做的怎么样了

回复

使用道具 举报

102

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-26 18:07 | 显示全部楼层
                                 仔细阅读了一下,的确是不错

回复

使用道具 举报

113

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-26 22:23 | 显示全部楼层
                                 的确是很不错的参考资料

回复

使用道具 举报

103

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-27 20:08 | 显示全部楼层
                                 很有参考价值的例程

回复

使用道具 举报

118

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-29 18:15 | 显示全部楼层
                                 崩溃了 发觉读U盘已经可以  哎 写U盘竟然有问题 你有没碰到关闭文件的时候,CWB发完之后,再写数据时候,在写完第一包接着下一包设备就回了个nak 结果导致超时。。。。哎

回复

使用道具 举报

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

关闭

站长推荐上一条 1/5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-3-31 14:41 , Processed in 0.565060 second(s), 16 queries , Gzip On, MemCache On.

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