📄 i2c.h
字号:
//i2c.h
#define I2COAR_ADDR 0x3C00
#define I2COAR (*(ioport volatile unsigned int *)I2COAR_ADDR)
#define I2CIMR_ADDR 0x3C01
#define I2CIMR (*(ioport volatile unsigned int *)I2CIMR_ADDR)
#define I2CSTR_ADDR 0x3C02
#define I2CSTR (*(ioport volatile unsigned int *)I2CSTR_ADDR)
#define I2CCLKL_ADDR 0x3C03
#define I2CCLKL (*(ioport volatile unsigned int *)I2CCLKL_ADDR)
#define I2CCLKH_ADDR 0x3C04
#define I2CCLKH (*(ioport volatile unsigned int *)I2CCLKH_ADDR)
#define I2CCNT_ADDR 0x3C05
#define I2CCNT (*(ioport volatile unsigned int *)I2CCNT_ADDR)
#define I2CDRR_ADDR 0x3C06
#define I2CDRR (*(ioport volatile unsigned int *)I2CDRR_ADDR)
#define I2CSAR_ADDR 0x3C07
#define I2CSAR (*(ioport volatile unsigned int *)I2CSAR_ADDR)
#define I2CDXR_ADDR 0x3C08
#define I2CDXR (*(ioport volatile unsigned int *)I2CDXR_ADDR)
#define I2CMDR1_ADDR 0x3C09
#define I2CMDR1 (*(ioport volatile unsigned int *)I2CMDR1_ADDR)
#define I2CIVR_ADDR 0x3C0A
#define I2CIVR (*(ioport volatile unsigned int *)I2CIVR_ADDR)
#define I2CPSC_ADDR 0x3C0C
#define I2CPSC (*(ioport volatile unsigned int *)I2CPSC_ADDR)
#define I2CMDR2_ADDR 0x3C0F
#define I2CMDR2 (*(ioport volatile unsigned int *)I2CMDR2_ADDR)
void I2cInitForAic23(void);
int I2cWriteAic23(unsigned int *data);
void I2cInitForEEPROM(void);
UINT SequentialRead(FILE* fp,UINT FileSize);
UINT AT24SetAddress(UINT DataAddr);
UINT AT24PageWrite(BYTE* InputBuf,UINT addr);
void CheckProgStatus(void);
#define generate_start_condition I2CMDR1 = I2CMDR1 | 0x2000
#define generate_stop_condition I2CMDR1 = I2CMDR1 | 0x0800
#define K_TIME_OUT 60000
#define K_AT24C512 128//每一页的大小
#define K_AT24C256 64
#define K_AT24C128 64
#define K_CURRENT_PAGE_SIZE K_AT24C256//需要修改
#define K_AT24C512_SIZE 0x10000//存储器容量
#define K_AT24C256_SIZE 0x8000
#define K_AT24C128_SIZE 0x4000
#define K_DEVICE_PAGE_ALL K_AT24C256_SIZE/K_CURRENT_PAGE_SIZE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -