Image
Image

chenqiang10

+ 关注

粉丝 1     |     主题 39     |     回帖 940

STM32采集SD卡数据
2018-6-18 10:53
  • ST MCU
  • 37
  • 3546
  写入扇区的程序实现如下: int8_t SD_WriteDisk(uint8_t *buf, uint32_t sector, uint8_t num) { uint8_t i ...  
  写入多个扇区的操作步骤为: 1) 发送 CMD25(命令参数是写入扇区地址)。如果是 MMC 卡,就先 发送 CMD55 ...  
  写入一个扇区的操作步骤为: 1) 发送 CMD24(命令参数是写入扇区地址) 2) 检测返回值,查看 CMD24 是否发 ...  
  SD 卡写入数据操作 SD 卡写入数据也有两个命令,一个命令是 CMD24:写入一个扇区(一 般为 512 字节);另 ...  
  接收一个扇区数据的函数,具体代码如下: static int8_t SD_ReadData(uint8_t *buf) { uint16_t i; /* 等待 ...  
  读取扇区的程序实现如下: int8_t SD_ReadDisk(uint8_t *buf, uint32_t sector, uint8_t num) { uint16_t i ...  
  多个扇区读取的步骤为: 1) 发送 CMD18。(命令参数是读取扇区地址) 2) 检测卡响应是否发送成功。 3) 然后 ...  
  单个扇区读取的步骤为: 1) 发送 CMD17。(命令参数是读取扇区地址) 2) 检测卡响应是否发送成功。 3) 等待 ...  
  SD 卡读取数据操作 SD 卡读取数据有两个命令,一个命令是 CMD17:读取一个扇区(一般 为 512 字节);另一 ...  
  else //没有回应说明是 MMC V3 { SD_TYPE = SD_TYPE_MMC; //卡类型是 MMC 卡 i = 0; while(SD_WriteCmd(SD ...  
  else //否则就是 SD V1.0 或者 MMC V3 { SD_WriteCmd(SD_CMD55, 0x00, 0x01); r1 = SD_WriteCmd(SD_CMD41, ...  
  /* 读取 OCR */ for(i=0; i  
  int8_t SD_Init(void) { uint8_t r1, buf[4]; uint16_t i = 0; SD_GPIO_Config(); SPI2_SetSpeed(SPI_BaudR ...  
  发送 ACMD41。要注意,ACMD41 是特定的应用命令,所以发 送 ACMD41 的时候,要先发送 CMD55 告诉 SD 卡,接 ...  
  当 SD 卡是 V1.0 协议的时候: 发送 CMD58,读取电压检测。如果检测电压出错,表示卡出错。 ...  
  发送 CMD58,读取 CCS,查看 SD 卡是高容量卡(2G 及 2G 以 上为高容量卡)还是标准卡。 ...  
  发送 ACMD41。要注意,ACMD41 是特定的应用命令,所以发 送 ACMD41 的时候,要先发送 CMD55 告诉 SD 卡,接 ...  
  CMD8 正确回应,读取返回值中的“提供电压”和“模式检测”, 看看是否匹配,否则卡出错。 ...  
  发送 CMD8。如果是非法命令,那么该卡是 SD 卡 V1.0 协议(MMC 卡也是得到非法回应)。如果得到正确回应, ...  
  然后进入 SPI 模式。也就是在片选信号为低电平时,发送 CMD0。  
2
3
近期访客