论坛首页
任务活动
问答
论坛专题
登录
注册
aizaixiyuanqian
+ 关注
粉丝
6
|
主题
62
|
回帖
1353
加好友
私信
帖子
主题
回复
评论
STM32 基础篇——SD 卡实验
2023-9-21 22:31
ST MCU
83
5307
本次的SD实验是基于SPI通讯,下次再分享下关于SDIO的,
由于 SD 卡读写测试会破坏 SD 卡的 FAT 数据,所以这里就不测试读写了, 大家可以自己添加,不过对 SD 卡读 ...
/* 显示 SD 卡容量 */ num[0] = (sdCapacity /10000 % 10) + '0'; num[1] = (sdCapacity /1000 % 10) + '0' ...
/* 显示 SD 卡类型 */ if(SD_TYPE == 0x06) { GUI_Show12Char(96, 105, "SDV2HC OK!", RED, BLACK); } else ...
主程序 int main(void) { uint8_t ledState, num[6] = {0, 0, 0, 0, 0, 0}; uint32_t i, sdCapacity; /* 彩 ...
/* 读取数据 */ for(i=0; i 6) + ((uint16_t)csdValue[7]
int8_t SD_ReadCapacity(uint32_t *capacity) { uint8_t csdValue[16]; uint16_t n, i = 0; /* 发送命令 */ ...
读取了 CSD 寄存器,我们怎么计算 SD 卡的容量呢,首先我们来看 V2.0 协议的内存容量计算方式(在《SD 卡 2 ...
我们在上面学习过如何读取 SD 卡数据之后,我们在学习读取 CSD 寄存 器就很简单了,它们的操作其实差不多的 ...
在主函数中,我们还调用了一个函数,用来读取 SD 的卡的内存容量。 而 SD 卡的内存容量的相关数据都保存在 ...
写 512 个数据数据 static int8_t SD_WriteData(uint8_t *buf, uint8_t cmd) { uint16_t i; /* 发送若干个 ...
/* 开始写数据 */ while(num--) { if(SD_WriteData(buf, 0xFC) != 0) { return 0xFF; } buf += 512; } /* ...
/* 写多个扇区 */ else { if(SD_TYPE == SD_TYPE_MMC) //如果是 MMC 卡 { SD_WriteCmd(SD_CMD55, 0, 0X01) ...
写多个扇区 int8_t SD_WriteDisk(uint8_t *buf, uint32_t sector, uint8_t num) { uint8_t i; if(SD_TYPE ! ...
然后发送若干个时钟,同时读取返回值,知道返回值不是 0xFF 发送结束令牌 0xFD。 ...
检测返回值,查看 CMD25 是否发送成功。 然后一个扇区一个扇区的写入数据,这个部分的步骤为: a) 然后发送 ...
发送 CMD25(命令参数是写入扇区地址)。如果是 MMC 卡,就先 发送 CMD55 和 CMD23 擦除扇区。 ...
写入一个扇区的操作步骤为: 1) 发送 CMD24(命令参数是写入扇区地址) 2) 检测返回值,查看 CMD24 是否发 ...
SD 卡写入数据也有两个命令,一个命令是 CMD24:写入一个扇区(一 般为 512 字节);另一个是 CMD25:写入 ...
这个没有,可以去相关产品那里去找下
前一页
17
18
19
20
21
22
23
后一页
2
3
近期访客