关于CH376获取TF卡容量

首先,平台是用的是 STM32 FSMC总线, SD卡初始化和建立文件和文件写入都已经测试,没有问题。 但是关于获取SD卡容量,怎么都不正确, SD使用的是SANDISK 的4G TF卡。 卡是空的,没任何文件。

使用的是库带的函数

使用 CH376DiskCapacity 函数获取到的数据是 30252 个扇区,算出来是 15.5MB

使用 CH376DiskQuery 函数获取到的数据是 50361781 个扇区,算出来是 25785 MB

谁知道是怎么回事啊,之前用金士顿的4GTF,也是这个样子。 容量在小的卡,现在市场上买不到了,没办法试了

关于 CH376DiskQuery 的问题, 已经解决了, 你原来才程序 xWriteCH376Cmd( CMD01_RD_USB_DATA0 ); xReadCH376Data( ); /* 长度总是sizeof(CH376_CMD_DATA.DiskQuery) */ xReadCH376Data( ); /* CH376_CMD_DATA.DiskQuery.mTotalSector */ xReadCH376Data( ); xReadCH376Data( ); xReadCH376Data( ); c0 = xReadCH376Data( ); /* CH376_CMD_DATA.DiskQuery.mFreeSector */ c1 = xReadCH376Data( ); c2 = xReadCH376Data( ); c3 = xReadCH376Data( );

上面不知道为何多 一行 xReadCH376Data( ); 把多出来的这个,删除了容量就对了,同样 CH376DiskCapacity 函数 也是多了这一行代码

希望你们官方提供的代码 以后能够测试下在发布。


我们的例程是经过多次测试的 多 一行 xReadCH376Data( ); 读出来的数据是接下来的要读数据的总字节数 刚做了实验你说的现象没有出现,必须要多读xReadCH376Data( ); /* 长度总是sizeof(CH376_CMD_DATA.DiskQuery) */否则读出的容量不正确。可能是总线那边读或者是你变量处理的有问题


求ch376S模块89C52一个完整的程序


你把你的邮箱给我,我给你发一份把


我的邮箱是个人信息保护,已隐藏


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