📄 cf_io.h
字号:
#include <avr\sfr_defs.h>
typedef struct
{
uint16_t Signature;
uint16_t Cylinders;
uint16_t Heads;
uint16_t SectorsPerTrack;
uint32_t TotalSectors;
char SerialNumber[20];
char ModelNumber[40];
uint32_t LBAs;
uint32_t TotalSize;
} CF_TInfo;
#define CF_DATA_REG _SFR_MEM8(0x8000)
#define CF_ERROR_REG _SFR_MEM8(0x8100)
#define CF_FEATURE_REG _SFR_MEM8(0x8100)
#define CF_SECTOR_COUNT_REG _SFR_MEM8(0x8200)
#define CF_SECTOR_REG _SFR_MEM8(0x8300)
#define CF_LBA_0_7_REG _SFR_MEM8(0x8300)
#define CF_CYLINDER_L_REG _SFR_MEM8(0x8400)
#define CF_LBA_8_15_REG _SFR_MEM8(0x8400)
#define CF_CYLINDER_H_REG _SFR_MEM8(0x8500)
#define CF_LBA_16_23_REG _SFR_MEM8(0x8500)
#define CF_HEAD_REG _SFR_MEM8(0x8600)
#define CF_LBA_24_27_REG _SFR_MEM8(0x8600)
#define CF_DRIVER_REG _SFR_MEM8(0x8600)
#define CF_STATUS_REG _SFR_MEM8(0x8700)
#define CF_COMMAND_REG _SFR_MEM8(0x8700)
#define CF_CMD_DIAGNOSTIC 0x90 //诊断
#define CF_CMD_IDENTITY 0xec //读CF卡信息
#define CF_CMD_READSECTOR 0x20 //读扇区
#define CF_CMD_SETFEATURE 0xef //设置特性
#define CF_CMD_SLEEP 0x99 //进入Sleep模式(省电)
#define CF_CMD_STANDBY 0x96 //进入Standby模式
#define CF_CMD_WRITESECTOR 0x30 //写扇区
#define CF_LBA_MASTER 0xe0
#define CF_LBA_SLAVE 0xf0
uint16_t CF_DataOffset;
uint32_t CF_CurrentLBA;
uint8_t CF_Initialize(void); //初始化CF卡参数并诊断
void CF_ChangeDrive(uint8_t d); //改变当前的驱动器(d==0为Master、d==1为Slave)
uint8_t CF_GetCardInfo(CF_TInfo *I); //获取CF卡信息
uint8_t CF_ReadSector(uint16_t cylinder, uint8_t head, uint8_t sector, uint8_t sectorcount, char *buf); //读扇区
uint8_t CF_LBAReadSector(uint32_t LBA, uint8_t sectorcount, char *buf); //以LBA方式读扇区
uint8_t CF_WriteSector(uint16_t cylinder, uint8_t head, uint8_t sector, uint8_t sectorcount, char *buf); //写扇区
uint8_t CF_LBAWriteSector(uint32_t LBA, uint8_t sectorcount, char *buf); //以LBA方式写扇区
void CF_Sleep(void);
void CF_Standby(void);
uint8_t CF_LBAOpen(uint32_t LBA);
uint8_t CF_LBAReadb(void);
uint16_t CF_LBAReadw(void);
uint32_t CF_LBAReadl(void);
void CF_LBASeek(uint16_t o);
void CF_LBAClose(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -