⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drvsdcard.h

📁 cortex-m0 LCD1602程序
💻 H
字号:
/****************************************************************
 *                                                              *
 *  Copyright (c) Nuvoton Technology Corp. All rights reserved. *
 *                                                              *
 ****************************************************************/
 
#ifndef __DRVSDCARD_H__
#define __DRVSDCARD_H__

// Include header file
#include "NUC1xx.h"

// Command Table Index Constants:
// Definitions for each table entry in the command table.
// These allow the MMC_Command_Exec function to be called with a
// meaningful parameter rather than a number.
#define		SDv1	1<<1
#define		SDv2	1<<2
#define		MMCv3	1<<3
#define		SDBlock	1<<4



#define     GO_IDLE_STATE            	0//CMD0
#define     SEND_OP_COND             	1//CMD1
#define     SEND_IF_COND     			2//CMD8
#define     SEND_CSD                 	3//CMD9
#define     SEND_CID                 	4//CMD10
#define     STOP_TRANSMISSION        	5//CMD12
#define     SEND_STATUS              	6//CMD13
#define     SET_BLOCKLEN             	7//CMD16
#define     READ_SINGLE_BLOCK        	8//CMD17
#define     READ_MULTIPLE_BLOCK      	9//CMD18
#define     SET_BLOCK_COUNT       		10//CMD23
#define     WRITE_BLOCK              	11//CMD24
#define     WRITE_MULTIPLE_BLOCK    	12//CMD25
#define     PROGRAM_CSD             	13//CMD27
#define     SET_WRITE_PROT          	14//CMD28
#define     CLR_WRITE_PROT          	15//CMD29
#define     SEND_WRITE_PROT         	16//CMD30
#define     TAG_SECTOR_START        	17//CMD32
#define     TAG_SECTOR_END          	18//CMD33
#define     UNTAG_SECTOR            	19//CMD34
#define     TAG_ERASE_GROUP_START   	20//CMD35
#define     TAG_ERASE_GROUP_END     	21//CMD36
#define     UNTAG_ERASE_GROUP       	22//CMD37
#define     ERASE                   	23//CMD38
#define     LOCK_UNLOCK             	24//CMD42
#define     APP_CMD                 	25//CMD55
#define     READ_OCR                	26//CMD58
#define     CRC_ON_OFF              	27//CMD59
#define     SD_SEND_STATUS          	28//ACMD13
#define     SD_SET_WR_BLK_ERASE_COUNT	29//ACMD23
#define     SD_SEND_OP_COND         	30//ACMD41





#define DRVSDCARD_MAJOR_NUM 1
#define DRVSDCARD_MINOR_NUM 00
#define DRVSDCARD_BUILD_NUM 1
#define DRVSDCARD_VERSION_NUM    _SYSINFRA_VERSION(DRVSDCARD_MAJOR_NUM, DRVSDCARD_MINOR_NUM, DRVSDCARD_BUILD_NUM)


#define E_DRVSDCARD_PIN_UNAVAILABLE     _SYSINFRA_ERRCODE(true, MODULE_ID_DRVSDCARD, 0)
#define E_DRVSDCARD_INITIAL_FAIL        _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 1)
#define E_DRVSDCARD_SD_BUSY             _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 2)
#define E_DRVSDCARD_CARD_REMOVED        _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 3)
#define E_DRVSDCARD_RESPONSE_TIMEOUT    _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 4)
#define E_DRVSDCARD_CRC_ERROR           _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 5)
#define E_DRVSDCARD_MULT_READ           _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 6)
#define E_DRVSDCARD_TRANSFER_TIMEOUT    _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 7)
#define E_DRVSDCARD_COMMAND_STOP        _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 8)
#define E_DRVSDCARD_MULT_WRITE          _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 9)
#define E_DRVSDCARD_READ_ERROR          _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 10)
#define E_DRVSDCARD_WRITE_ERROR         _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 11)
#define E_DRVSDCARD_CLOCK_LIMIT         _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 12)
#define E_DRVSDCARD_SET_GPIO_ERROR      _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 13)
#define E_DRVSDCARD_GPIO_ERROR          _SYSINFRA_ERRCODE(TRUE, MODULE_ID_DRVSDCARD, 14)

// APIs declaration
uint32_t DrvSDCARD_Open(void);
void DrvSDCARD_Close(void);
uint32_t DrvSDCARD_GetVersion(void);
uint32_t MMC_Command_Exec (uint8_t cmd_loc, uint32_t argument,uint8_t *pchar, uint32_t* response);
uint32_t GetLogicSector(void);
uint32_t DrvSDCARD_GetCardSize(uint32_t* pu32TotSecCnt);
void SpiRead(uint32_t addr, uint32_t size, uint8_t* buffer);
void SpiWrite(uint32_t addr, uint32_t size, uint8_t* buffer);
#endif //__DRVSDCARD_H__




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -