#ifndef _INTERFACE_24C02_H_ #define _INTERFACE_24C02_H_ #define _nop_() Delay_Us(1); #define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();} #define EN_24C02 1 #define E2_PAGE_SIZE 4096 #define E2_MAX_PAGE 8 /* EERPOM DATA ADDRESS Length Definition */ #define Address_8bit 0 #define Address_12bit 1 #define Address_16bit 2 /* EERPOM DATA ADDRESS Length Selection */ #define Address_Lenth Address_12bit #define EEPROM_ADDRESS 0xA0 // #define RM3100_I2C hi2c1 #define RM3100_ADDRESS 0x23<<1 //AD0 AD1都接地 #define RM3100_CONVERSION_INTERVAL 10000 // Microseconds, corresponds to 100 Hz (cycle count 200 on 3 axis) #define UTESLA_TO_GAUSS 100.0f #define RM3100_SENSITIVITY 75.0f #define ADDR_POLL 0x00 #define ADDR_CMM 0x01 #define ADDR_CCX 0x04 #define ADDR_CCY 0x06 #define ADDR_CCZ 0x08 #define ADDR_TMRC 0x0B #define ADDR_MX 0x24 #define ADDR_MY 0x27 #define ADDR_MZ 0x2A #define ADDR_BIST 0x33 #define ADDR_STATUS 0x34 //#define ADDR_STATUS_READ 0xB4 //0X34|0X80 #define ADDR_HSHAKE 0x35 #define ADDR_REVID 0x36 #define CCX_DEFAULT_MSB 0x00 #define CCX_DEFAULT_LSB 0xC8 #define CCY_DEFAULT_MSB CCX_DEFAULT_MSB #define CCY_DEFAULT_LSB CCX_DEFAULT_LSB #define CCZ_DEFAULT_MSB CCX_DEFAULT_MSB #define CCZ_DEFAULT_LSB CCX_DEFAULT_LSB #define CMM_DEFAULT 0x71 // continuous mode #define CONTINUOUS_MODE (1 << 0) #define POLLING_MODE (0 << 0) #define TMRC_DEFAULT 0x95 #define BIST_SELFTEST 0x8F #define BIST_DEFAULT 0x00 #define BIST_XYZ_OK ((1 << 4) | (1 << 5) | (1 << 6)) #define STATUS_DRDY (1 << 7) #define POLL_XYZ 0x70 #define RM3100_REVID 0x22 #define HSHAKE_DEFAULT (0x0B) void iicInit(I2C_TypeDef *I2Cx, u32 bound, u16 address); uint8_t RM3100_GetData(short *x,short *y,short*z); void iic_sendbyte(unsigned char byt); unsigned char wrbyte_24c02(unsigned int add,unsigned char dat); unsigned char i2c_recbyte(void); unsigned char rdbyte_24c02(unsigned int add); unsigned char wrEE_CRC_Bak(unsigned char add,unsigned char *eeData,unsigned char len,unsigned char addbak); unsigned char rdEE_CRC_Bak(unsigned char add,unsigned char *eeData,unsigned char len,unsigned char addbak); void rm3100Init(void);//初始化RM3100 void initSpi(void); #endif /* _INTERFACE_24C02_H_ */