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

📄 sd_api.h

📁 收集了单片机对SD卡读写源码
💻 H
字号:
 /*!
 *@file    sd_api.h
 *
 * 
 *
 *@version v1.0.0
 *@date    2007
 *@author  jacky291@126.com
 */
#ifndef  __SD_API_H
#define  __SD_API_H

#ifndef __CONFIG_H
#include "config.h"
#endif

#define  SD_WAIT_ERASE_TIME   2000
#define  SD_ERR_TIMEOUT_ERASE 253
#define  SD_IDLE              0x01
#define  SD_RST_TIMEOUT       255
#define  SD_RST_TIME          2000
/*!
*@brief
*        SD_ResetSD()
*        reset sd card
*
*@param  none
*@retval 0:  right	>0:  error code
*/
extern uint8 SD_ResetSD(void);

/*!
*@brief
*        SD_EnableCRC()
*        enable crc check of SD Card 
*
*@param  bEnable : 1:enable  0: disable
*@retval 0:  right	   >0:  error code
*/
extern uint8 SD_EnableCRC(uint8 bEnable);
/*!
*@brief
*        SD_Read_SD_Status()
*        read SD_Status register of sd card 
*
*@param  sdslen: len of register (fixed,is 64)
*@param  recbuf: recbuffer	
*@retval 0:  right	   >0:  error code
*/
extern uint8 SD_ReadSD_Status(uint8 sdslen, uint8 *recbuf);

/*!
*@brief
*        SD_ReadCard_Status()
*        read Card Status register of sd card 
*
*@param  len:len of register (fixed,is 2)
*@param  *recbuf : recbuffer
*@retval 0:  right		>0:  error code
*/
extern uint8 SD_ReadCard_Status(uint8 len, uint8 *buffer);

/*!
*@brief
*        SD_ReadCSD()
*        command that read CSD register
*
*@param  none
*@retval error: SD_ERR_CMD_RESP,or return the read value.
*/
extern uint8 SD_ReadCSD(uint8 csdlen, uint8 *recbuf);

/*!
*@brief
*        SD_ReadCID()
*        read CID register of sd card
*
*@param  cidlen  : len of register (fixed,is 16)
*@param  recbuf : recbuffer	
*@retval 0:  right		>0:  error code
*/
extern uint8 SD_ReadCID(uint8 len, uint8 *recbuf);

/*!
*@brief
*        SD_ProgramCSD()
*        write CSD register
*
*@param  *buff: the content of CSD register	
*@param  len  : the length of CSD register
*@retval 0:  right		>0:  error code
*/
extern uint8 SD_ProgramCSD(uint8 len, uint8 *buff);

/*!
*@brief
*        SD_ReadOCR()
*        read OCR register of sd card
*
*@param  ocrlen  : len of register (fixed,is 4)
*@param  *recbuf : recbuffer	
*@retval 0:  right	   >0:  error code
*/
extern uint8 SD_ReadOCR(uint8 ocrlen, uint8 *recbuf);




/*!
*@brief
*        SD_ReadSCR()
*        read SCR register of sd card 
*
*@param  scrlen		 : len of register (fixed,is 8)
*@param  *recbuf		 : recbuffer	
*@retval 0:  right	   >0:  error code
*/
extern uint8 SD_ReadSCR(uint8 scrlen, uint8 *recbuf);




/*!
*@brief
*  SD_StopTransmission()
*  stop data transmission 
*
*@param  none
*@retval 0:  right		>0:  error code
*/
extern uint8 SD_StopTransmission(void);

/*!
*@brief
*  Sd_SetBlockLen()
*  set a block len of sd card
*
*@param  length	: the length of a block
*@retval 0:  right		>0:  error code
*/
extern uint8 SD_SetBlockLen(uint32 length);



/*!
*@brief
*        SD_ReadSingleBlock()
*        read single block command
*
*@param  blockaddr: block address
*@retval 0:  right		>0:  error code
*/
extern uint8 SD_ReadSingleBlock(uint32 blockaddr);
/*!
*@brief
*        SD_ReadMultipleBlock()
*        read multiple block command 
*
*@param  blockaddr: block address
*@retval 0:  right		>0:  error code
*/
extern uint8 SD_ReadMultipleBlock(uint32 blockaddr);

/*!
*@brief
*        SD_WriteSingleBlock()
*        write single block command
*
*@param  blockaddr: block address
*@retval 0:  right		>0:  error code
*/
extern uint8 SD_WriteSingleBlock(uint32 blockaddr);

/*!
*@brief
*        SD_WriteMultipleBlock()
*        write multiple block command
*
*@param  blockaddr: block address
*@retval 0:  right		>0:  error code
*/
extern uint8 SD_WriteMultipleBlock(uint32 blockaddr);
/*!
*@brief
*        SD_GetNumWRBlcoks()
*        get the block numbers that written correctly
*
*@param  blocknum	: the block numbers returned
*@retval 0:  right	   >0:  error code
*/
extern uint8 SD_GetNumWRBlcoks(uint32 *blocknum);

/*!
*@brief
*        SD_EraseStartBlock()
*        select the start block address of erasing operation 
*
*@param  *pSource: data
*@param  startblock	: block address
*@retval 0:  right	   >0:  error code
*/
extern uint8 SD_EraseStartBlock(uint32 startblock);
/*!
*@brief
*        SD_EraseEndBlock()
*        select the end block address of erasing operation  
*
*@param  Length	: block address
*@retval 0:  right	   >0:  error code
*/
extern uint8 SD_EraseEndBlock(uint32 endblock);
/*!
*@brief
*        SD_EraseSelectedBlock()
*        erase block selected
*
*@param  none
*@retval 0:  right	   >0:  error code
*/
extern uint8 SD_EraseSelectedBlock(void);

#endif

⌨️ 快捷键说明

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