打印
[STM32F1]

Cube生成的USB MSC工程问题

[复制链接]
962|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhanzr21|  楼主 | 2015-12-21 17:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我原来有一个项目:STM32F105+SPI Flash当做USB MSC Device工作,用的是标准库和单独的USB OTG Device库(V2.1.0)做的. 没有问题。

因为现在想把整个项目迁移到Cube上去, 于是重新用Cube生成的代码。驱动什么的也做好了. Cube是4.12.0的版本, F1_1.2.0的Firmware包。

驱动什么的都改好了, 但是工作不正常。

首先枚举获取各种描述符是正常的。电脑可以识别出U盘来, 经过调试SCSI Inquiry命令执行成功。
但是接著的 SCSI Read Format Capacity命令 与SCSI Read Capacity命令就执行不成功。在我原来老工程里面,这两个命令只会分别执行一次,跟著就获取分区表了。可是Cube生成的工程中, Read Format Capacity执行了三次, Read Capacity执行了两次。回复我比较过了,跟老工程中的回复是一样的. 但是电脑端似乎并没有收到这里的回复。后面的读写CBW中的数据长度也与我前面回复的Sector长度不一样。导致不能读写格式化。

Cube生成的代码, 都是用的HAL与LL的库函数,与之前的标准库改动很大了. 所以看起来也很慢。

请问大侠们有没有思路。 @computer00 @香水城
沙发
zhanzr21|  楼主 | 2015-12-21 23:01 | 只看该作者
改了改PID VID 把问题解决了 原因还没有搞清楚 猜想可能跟windows的缓存有关吧 暂时没有时间研究了 先用著

使用特权

评论回复
板凳
computer00| | 2015-12-25 20:09 | 只看该作者
windows会自动将驱动和VID/PID等绑定,如果你设备功能改了,而ID不改,驱动就会加载错。
可以把驱动卸载或更换ID试试。

使用特权

评论回复
地板
forgot| | 2015-12-25 21:09 | 只看该作者
看来现在用cube开发的越来越多了

使用特权

评论回复
5
zhuotuzi| | 2015-12-25 21:23 | 只看该作者
cube的确好用,不过用的还不是很熟练,希望有中文版的教程。

使用特权

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

本版积分规则

91

主题

1013

帖子

34

粉丝