Files
GPS-Navigator-/ETH/UdpServer/User/interface_24c02.h
2025-09-05 21:09:02 +08:00

110 lines
2.6 KiB
C

#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_ */