24c02.h

来自「24c02读写程序」· C头文件 代码 · 共 64 行

H
64
字号
#include "gpio.h"

#define WriteDeviceAddress 0xa0
#define ReadDviceAddress 0xa1


#define I2C_PORT_INDEX GPIO_PORT_INDEX	// 定义I2C端口
#define I2C_PORT_DATA  GPIO_PORT_DATA


#if 1
#define I2C_SEL GPIOA_SEL	// 选择寄存器
#define I2C_CTL GPIOA_CTL	// 控制寄存器
#define I2C_DAT GPIOA_DAT    // 数据寄存器

#define I2C_SDA_H  0x01
#define I2C_SDA_L  0xfe
#define I2C_SCL_H  0x02
#define I2C_SCL_L  0xfd
#else
#define I2C_SEL GPIOC_SEL	// 选择寄存器
#define I2C_CTL GPIOC_CTL	// 控制寄存器
#define I2C_DAT GPIOC_DAT    // 数据寄存器

#define I2C_SDA_H  0x80
#define I2C_SDA_L  0x7F
#define I2C_SCL_H  0x40
#define I2C_SCL_L  0xBF

#endif


#define SDA_L { \
		     gpioa &= I2C_SDA_L; \
		     outport(I2C_PORT_INDEX, I2C_DAT+(gpioa<<8)); \
	      }
	      
#define SDA_H { \
		     gpioa |= I2C_SDA_H; \
		     outport(I2C_PORT_INDEX, I2C_DAT+(gpioa<<8)); \
	      }
	      
#define SCL_L { \
		     gpioa &= I2C_SCL_L; \
	             outport(I2C_PORT_INDEX, I2C_DAT+(gpioa<<8)); \
	      }
	      
#define SCL_H { \
                     gpioa |= I2C_SCL_H; \
	             outport(I2C_PORT_INDEX, I2C_DAT+(gpioa<<8)); \
	      }
			
#define I2C_SDA_AS_IN { \
		outport(GPIO_PORT_INDEX, (0x0e<<8)+I2C_CTL); \
	}
	
#define I2C_SDA_AS_INOUT { \
		outport(GPIO_PORT_INDEX, (0x0f<<8)+I2C_CTL); \
	}

#define nop() { asm { \
		nop \
	        } \
	      }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?