U盘容量查询问题,总容量不对,剩余容量正确。

我分别用DISK_CAPACITY和DISK_QUERY两个命令查询一个金士顿8G的U盘,两个命令返回的总容量不一样而且都不对,但是返回的剩余空间是正确的。U盘内的文件也可以正确读到。串口打印的信息如下:

挂载磁盘成功。 厂商信息:KingstonDataTraveler G2 1.00 Production info:DataTraveler G2 1.00 Production version:1.00 CH376产生中断,开始获取CH376中断数据. 获取中断数据成功,请检查中断内容. Get capacity success! 数据流长度为4. Device capacity is 3556 MB. CH376产生中断,开始获取CH376中断数据. 获取中断数据成功,请检查中断内容. Disk query success! 数据流长度为9. Device capacity is 3541 MB. Device free space is 1554 MB. Device fat format is FAT32. Open file success! 读取数据完成. 读取的数据内容为: [IZUMI SAKAI]->[What a beautiful moment.]

串口显示8G的金士顿U盘总容量为3556(DISK_CAPACITY)和3541(DISK_QUERY)。

是否有读取U盘容量的两个命令需要注意的地方。麻烦提供下建议,谢谢。

你看下你获取容量的时候获取的8个字节的数据是什么?


已经解决,是数据溢出问题,但是还有个疑问是DISK_CAPACITY和DISK_QUERY两个命令查询的总容量为什么不一致,请指教。


CMD_DISK_CAPACITY 该命令用于查询磁盘物理容量,而CMD_DISK_QUERY命令获取逻辑盘的总扇区数。总容量相差不大,逻辑磁盘和物理磁盘概念不一样,您只需要关注逻辑磁盘空间就行了


只有登录才能回复,可以选择微信账号登录