📄 sd.h
字号:
#ifndef _SD_H
#define _SD_H
#define SD_Chip_Select (1 << 20)
/*LPC2148与SD卡模块的接口定义
I/O NAME
P0.20 CS
P0.19 MOSI
P0.17 SCLK
P0.18 MISO
P0.15 det
*/
#define CMD0 0x00
#define CMD1 0x01
#define CMD2 0x02
#define CMD3 0x03
#define CMD4 0x04
#define CMD5 0x05
#define CMD6 0x06
#define CMD7 0x07
#define CMD8 0x08
#define CMD9 0x09
#define CMD10 0x0a
#define CMD11 0x0b
#define CMD12 0x0c
#define CMD13 0x0d
#define CMD14 0x0e
#define CMD15 0x0f
#define CMD16 0x10
#define CMD17 0x11
#define CMD18 0x12
#define CMD19 0x13
#define CMD20 0x14
#define ReadSec 0x01
#define ReadBlock 0x02
#define WriteSec 0x03
#define INIT_CMD0_ERROR 0x01 //CMD0 Error!
#define INIT_CMD1_ERROR 0x02 //CMD1 Error!
#define WRITE_BLOCK_ERROR 0x03
#define READ_BLOCK_ERROR 0x04
#define SD_Disable() IO0SET |= SD_Chip_Select//SD Chip Select Pin is P0.7
#define SD_Enable() IO0CLR |= SD_Chip_Select
typedef struct
{
INT16U size_MB;
INT8U sector_multiply;
INT16U sector_count;
INT8U name[6];
} VOLUME_INFO_TYPE;
void MSPI_Init(INT8U);
INT8U Write_Command_SD(INT8U *CMD);
INT8U SPI_RW(INT8U data);
INT8U SD_Init(void);
void SD_get_volume_info(VOLUME_INFO_TYPE* vinf);
INT8U SD_write_sector(INT32U Number_Sector, INT8U* Buffer);
INT8U SD_Read_Block(INT8U *CMD, INT8U *Buffer, INT16U Bytes);
INT8U SD_read_sector(INT32U Number_Sector,INT8U *Buffer);
INT8U Read_CID_SD(INT8U *Buffer);
INT8U Read_CSD_SD(INT8U *Buffer);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -