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

📄 sd_dat.h

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

#ifndef __SD_CONFIG_H
#include "sd_cfg.h"
#endif

#ifndef __SD_SPI_H
#include "sd_spi.h"
#endif

#if SD_CRC_EN
#include "sd_crc.h"
#endif 

/* tokens */
#define SD_TOK_READ_STARTBLOCK      0xFE
#define SD_TOK_WRITE_STARTBLOCK_M   0xFC
#define SD_TOK_WRITE_STARTBLOCK     0xFE
#define SD_TOK_STOP_MULTI           0xFD
/* errors */
#define SD_NO_ERR                   0
#define SD_ERR_TIMEOUT_READ         255
#define SD_ERR_DATA_START_TOK       254
#define SD_ERR_RESP_DATA            252
#define SD_ERR_TIMEOUT_WRITE        251
#define SD_ERR_DATA_RESP            250
/* data response info */
#define SD_RESP_DATA_MSK            0x0F
#define SD_RESP_DATA_ACCETPTED      0x05
/* time define */
#define SD_TIMEOUT_WAIT             253
#define SD_READREG_TIMEOUT          2000
#define SD_WAIT_WRITE_TIME          2000
          
/*!
*@brief
*      SD_ReadRegister()
*      read sd register after the commands
*
*@param  len:data length
*@param  *recbuf  the data buffer addr.
*@retval 0:  right	>0:  error code
*/
extern uint8 SD_ReadRegister(uint32 len, uint8 *recbuf);	




/*!
*@brief
*        void SD_WaitBusy()
*        poll SD Card wheather it is busy
*@param  uint32 timeout:the time wait
*@retval 0: not time out   > 0: error code
*/
extern uint8 SD_WaitBusy(uint32 timeout);






/*!
*@brief
*       SD_ReadBlockData()
*       read block data from sd card
*
*@param  len    : length
*@param  *recbuf : the buffer of receive
*@retval 0:  right	>0:  error code
*/
extern uint8 SD_ReadBlockData(uint32 len, uint8 *recbuf);



/*!
*@brief
*       SD_WriteBlockData()
*       write block data to sd card
*
*@param  bmulti   : multi blocks operate 1:Y 0:N 
*@param  len     : length
*@param  *sendbuf : the buffer of send
*@retval 0:  right	>0:  error code
*/
extern uint8 SD_WriteBlockData(uint8 bmulti, uint32 len, uint8 *sendbuf);




/*!
*@brief
*       SD_StopMultiToken(void)
*       send the token that stop multiple block write
*
*@param  none
*@retval none
*/
extern void SD_StopMultiToken(void);

#endif

⌨️ 快捷键说明

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