求高手指点:在arm7上跑了个fatfs系统 ,格式化TF卡的时候,8G卡,格成了3个多G?? f_mkfs(0, 0, 4096)
发布网友
发布时间:2022-04-22 11:37
我来回答
共4个回答
热心网友
时间:2023-11-03 10:45
刚好遇到同样的问题,现在把解决方法分享给大家。
typedef struct
{
SD_CSD SD_csd;
SD_CID SD_cid;
uint64_t CardCapacity; /*!< Card Capacity */
uint32_t CardBlockSize; /*!< Card Block Size */
uint16_t RCA;
uint8_t CardType;
} SD_CardInfo;
/*将*/
uint32_t CardCapacity; /*!< Card Capacity */
/*改为*/
uint64_t CardCapacity; /*!< Card Capacity */
/*找到SD_Error SD_GetCardInfo(SD_CardInfo *cardinfo)函数,找到
cardinfo->CardCapacity = (cardinfo->SD_csd.DeviceSize + 1) * 512 * 1024;
并将其注释*/
//cardinfo->CardCapacity = (cardinfo->SD_csd.DeviceSize + 1) * 512 * 1024;
/*然后在其后面添加*/
cardinfo->CardCapacity = (cardinfo->SD_csd.DeviceSize + 1);
cardinfo->CardCapacity *= 512;
cardinfo->CardCapacity *= 1024;
即可
热心网友
时间:2023-11-03 10:46
数据长度问题,超过32位后最高位溢出,所以容量只剩3个多G
热心网友
时间:2023-11-03 10:46
格式化有问题。你需要电脑查看TF卡吗?在格式化函数那里修改一下。去掉EXPAND FAT SIZE,扩展FAT尺寸只能是消耗容量。
热心网友
时间:2023-11-03 10:47
我也跟你一样的问题,不知道你解决了没有?