📄 sd.h
字号:
#ifndef SD_H
#define SD_H
#include "../global.h"
// MCU 巧 沥狼
#define SD_CS_DDR DDRB
#define SD_CS_PORT PORTB
#define SD_CS 0
// SD 疙飞绢
#define SD_GO_IDLE_STATE 0
#define SD_SEND_OP_COND 1
#define SD_SEND_CSD 9
#define SD_SEND_CID 10
#define SD_SEND_STATUS 13
#define SD_SET_BLOCKLEN 16
#define SD_READ_SINGLE_BLOCK 17
#define SD_WRITE_BLOCK 24
#define SD_PROGRAM_CSD 27
#define SD_SET_WRITE_PROT 28
#define SD_CLR_WRITE_PROT 29
#define SD_SEND_WRITE_PROT 30
#define SD_TAG_SECTOR_START 32
#define SD_TAG_SECTOR_END 33
#define SD_UNTAG_SECTOR 34
#define SD_TAG_ERASE_GROUP_START 35
#define SD_TAG_ERARE_GROUP_END 36
#define SD_UNTAG_ERASE_GROUP 37
#define SD_ERASE 38
#define SD_CRC_ON_OFF 59
// R1 览翠
#define SD_R1_BUSY 0x80
#define SD_R1_PARAMETER 0x40
#define SD_R1_ADDRESS 0x20
#define SD_R1_ERASE_SEQ 0x10
#define SD_R1_COM_CRC 0x08
#define SD_R1_ILLEGAL_COM 0x04
#define SD_R1_ERASE_RESET 0x02
#define SD_R1_IDLE_STATE 0x01
// 单捞鸥 矫累 Tokens
#define SD_STARTBLOCK_READ 0xFE
#define SD_STARTBLOCK_WRITE 0xFE
#define SD_STARTBLOCK_MWRITE 0xFC
// 单捞鸥 沥瘤 Tokens
#define SD_STOPTRAN_WRITE 0xFD
// 单捞鸥 俊矾 Tokens
#define SD_DE_MASK 0x1F
#define SD_DE_ERROR 0x01
#define SD_DE_CC_ERROR 0x02
#define SD_DE_ECC_FAIL 0x04
#define SD_DE_OUT_OF_RANGE 0x04
#define SD_DE_CARD_LOCKED 0x04
// Data Response Token values
#define SD_DR_MASK 0x1F
#define SD_DR_ACCEPT 0x05
#define SD_DR_REJECT_CRC 0x0B
#define SD_DR_REJECT_WRITE_ERROR 0x0D
void SD_Init(void); // SD 墨靛 檬扁拳 窃荐
void SD_Reset(void);
void SD_Command(U8 command, U32 arg);
U8 SD_Read_Sector(U32 sector, U8* buffer); // SD 墨靛俊 佬扁疙飞阑 焊郴绊, 荐脚茄 MP3 单捞磐甫 滚欺俊 历厘(512 官捞飘)
U8 SD_Write_Sector(U32 sector, U8* buffer);
void SD_Read_CIDdata(void);
void SD_Read_CSDdata(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -