[其他ST产品] 在STM32U5移植USB Host库时,MSC设备识别成功但读取失败的问题

[复制链接]
289|10
stormwind123 发表于 2025-9-26 15:59 | 显示全部楼层 |阅读模式
在STM32U5移植USB Host库时,MSC设备识别成功但读取失败!
公羊子丹 发表于 2025-9-27 07:26 | 显示全部楼层
我之前在 U5 上遇到过,识别正常但读写失败,多半是 Bulk 传输没走通,建议先开调试日志看下 URB 的状态。
周半梅 发表于 2025-9-27 07:27 | 显示全部楼层
要注意 MSC Class 的 BOT 协议,很多时候是 CBW/CSW 处理没对齐,导致主机端超时。
帛灿灿 发表于 2025-9-27 07:28 | 显示全部楼层
检查下 USB Host 的缓存区对齐问题,U5 上带 cache,有可能因为 buffer 没有放在 DTCM 或者没有加 SCB_CleanInvalidate 的操作。
童雨竹 发表于 2025-9-27 07:29 | 显示全部楼层
你用的是 CubeU5 自带的 USB Host 库吗?有些版本 MSC 的示例代码里默认只测了读容量,没有真正做读扇区。
万图 发表于 2025-9-27 07:31 | 显示全部楼层
建议先用 USB 分析仪抓一下,看看 SCSI READ10 命令发出后设备怎么回应的。
Wordsworth 发表于 2025-9-27 07:32 | 显示全部楼层
我记得有个坑是 MSC 的 block size 和 FatFS 配置不一致,会直接导致读失败。
Bblythe 发表于 2025-9-27 07:33 | 显示全部楼层
DMA 模式下最好把 buffer 用 __ALIGN_BEGIN 和 __ALIGN_END 修饰,保证 32 字节对齐。
Pulitzer 发表于 2025-9-27 07:34 | 显示全部楼层
如果只是读失败,写还没试过,可以先尝试发 SCSI Inquiry 和 Test Unit Ready,确认设备状态。
Uriah 发表于 2025-9-27 07:35 | 显示全部楼层
在调试的时候可以先关掉 cache,看问题是不是 cache 带来的。
Clyde011 发表于 2025-9-27 07:36 | 显示全部楼层
也可以对比下同样的 USB U 盘在 F4 或 H7 上能不能正常跑,缩小是不是移植适配层的问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

605

主题

3747

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部