📄 sd_cmd.h
字号:
#ifndef __SD_CMD_H__
#define __SD_CMD_H__
#include <std.h>
#include <stdio.h>
#include "TYPE.H"
#include "sd_driver.h"
#define CMD0 0x40
#define CMD1 (0x40 + 1)
#define CMD8 (0x40 + 8)
#define CMD9 (0x40 + 9)
#define CMD10 (0x40 + 10)
#define CMD12 (0x40 + 12)
#define CMD16 (0x40 + 16)
#define CMD17 (0x40 + 17)
#define CMD18 (0x40 + 18)
#define CMD24 (0x40 + 24)
#define CMD32 (0x40 + 32) //设置擦除开始块地址
#define CMD33 (0x40 + 33) //设置擦除最后块地址
#define CMD38 (0x40 + 38) //擦除所选择的块
#define CMD25 (0x40 + 25)
#define CMD55 (0x40 + 55)
#define CMD58 (0x40 + 58) //read OCR
#define ACMD13 (0xC0 + 13)
#define ACMD23 (0xC0 + 23)
#define ACMD41 (0xC0 + 41)
#define CH_OK 0X00
#define CH_ERROR 0x01
typedef struct CSD_STRUCT
{
UINT8 CSD_STRUCTURE;
UINT8 TAAC;
UINT8 NSAC;
UINT8 TRAN_SPEED;
UINT16 CCC;
UINT8 READ_BL_LEN;
Bool READ_BL_PARTIAL;
Bool WRITE_BLK_MISALIGN;
Bool READ_BLK_MISALIGN;
Bool DSR_IMP;
UINT16 C_SIZE;
UINT8 VDD_R_CURR_MIN;
UINT8 VDD_R_CURR_MAX;
UINT8 VDD_W_CURR_MIN;
UINT8 VDD_W_CURR_MAX;
UINT8 C_SIZE_MULT;
Bool ERASE_BLK_EN;
UINT8 SECTOR_SIZE;
UINT8 WP_GRP_SIZE;
Bool WP_GRP_ENABLE;
UINT8 R2W_FACTOR;
UINT8 WRITE_BL_LEN;
Bool WRITE_BL_PARTIAL;
Bool FILE_FORMAT_GRP;
Bool COPY;
Bool PERM_WRITE_PROTECT;
Bool TMP_WRITE_PROTECT;
UINT8 FILE_FORMAT;
UINT8 CRC;
}csd_struct;
/*----------------------------------------------------------------------------*/
/* SD卡信息结构体定义 */
/* the information structure variable of SD Card*/
typedef struct SD_STRUCT
{
UINT32 block_num; /* 卡中块的数量 */
UINT32 block_len; /* 卡的块长度(单位:字节) */
UINT32 erase_unit; /* 一次可擦除的块个数 */
UINT32 timeout_read; /* 读块超时时间(单位: 8 SPI clock) */
UINT32 timeout_write; /* 写块超时时间(单位: 8 SPI clock) */
UINT32 timeout_erase; /* 擦块超时时间(单位: 8 SPI clock) */
}sd_struct;
typedef enum{ STA_INITED, STA_NOINIT, STA_NODISK,STA_PROTECT} DSTATUS;
UINT8 SD_Hiden32M(UINT32 mHidenVolume);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -