我原来有一个项目: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 @香水城 |