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

📄 sd_spi.h

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

#ifndef __IO_H
#include "io.h"
#endif

#ifndef __TIME_H
#include "time.h"
#endif

#define TIME_EN                  1
#define SOFT_SPI_MODE            1
/*! pins define here */
    #define SD_POWER_PIN         0x01
#if SOFT_SPI_MODE 
    #define SD_SPI_CS_PIN        0x05  
    #define SD_SPI_DATA_In_PIN   0x0B
    #define SD_SPI_DATA_Out_PIN  0x07
    #define SD_SPI_CLK_PIN       0x09
/* pins operations here */
    #define SD_SPI_CSAssert()    io_disAssert(1<<SD_SPI_CS_PIN)
    #define SD_SPI_CSDisassert() io_assert(1<<SD_SPI_CS_PIN)
    #define SD_SPI_DATA_In()     io_read(1<<SD_SPI_DATA_In_PIN)
    #define SD_SPI_Send_1()      io_assert(1<<SD_SPI_DATA_Out_PIN)
    #define SD_SPI_Send_0()      io_disAssert(1<<SD_SPI_DATA_Out_PIN)
    #define SD_SPI_CLK_UP()      io_assert(1<<SD_SPI_CLK_PIN)
    #define SD_SPI_CLK_DOWN()    io_disAssert(1<<SD_SPI_CLK_PIN)
#else
/* pins config */
    #define SD_SPI_CS_PIN        0x07 
    #define SD_SPI_DATA_In_PIN   0x06
    #define SD_SPI_DATA_Out_PIN  0x05
    #define SD_SPI_CLK_PIN       0x04
    #define SD_SPI_FDIV          0x52
/* bit7--bit0 :中断|发送顺序|主从选择|时钟极性|CPHA|reserve|reserve */
    #define SD_SPI_CONFIG        0x20
#endif
    #define SPI_TIMEOUT 255


     
/*!
*@brief
*        SPI_SPEED_Set
*        set speed
*
*@param  f:frequent
*@retval none
*/  
extern void SD_SPI_Clk( uint32 f );
 
/*!
*@brief
*        SD_SPI_Delay()
*        delay
*
*@param  delay:count value
*@retval none
*/
extern void SD_SPI_Delay(void);

/*!
*@brief
*        SD_powerOn()
*        powerOn
*
*@param  none
*@retval none
*/
extern void SD_powerOn(void);

/*!
*@brief
*        SD_powerOff()
*        powerOff
*
*@param  none
*@retval none
*/
extern void SD_powerOff(void);

/*!
*@brief
*        SD_SPI_Init()
*        init spi
*
*@param  none
*@retval none
*/
extern void SD_SPI_Init(void);

/*!
*@brief
*        SD_SPI_RevByte()
*        receive the data
*
*@param  none
*@retval the receive data(8 bits)
*/
extern uint8 SD_SPI_RecByte(void);

/*!
*@brief
*        SD_SPI_SendByte(uint8 data)
*        send the data
*
*@param  the data sended(8 bits)
*@retval 
*/
extern uint8 SD_SPI_SendByte(uint8 dat);

/*!
*@brief
*        SD_SPI_WaitFor(uint32 timeout)
*        wait for the response
*
*@param  uint32 timeout:the timeout value
*@retval if the data arrived,return 0,else return SPI_TIME_OUT
*/
extern uint8 SD_SPI_WaitForLow(uint32 timeout);

#endif

⌨️ 快捷键说明

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