⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i2cint.h

📁 该包为一部分zlg MiniARM2200的基础测试代码。包括GPIOUARTI2cSPI定时器看门狗
💻 H
字号:
/*
*********************************************************************************************************
** 文件名称 : I2CINT.h
** 功能说明 : LPC2200系列芯片硬件I2C软件包。
** 使用说明 : 主程序要配置好I2C总线接口(I2C引脚功能和I2C中断,并已使能I2C主模式)
*********************************************************************************************************
*/

#ifndef  I2CINT_H
#define  I2CINT_H

#define	ONE_BYTE_SUBA	    1
#define TWO_BYTE_SUBA	    2
#define X_ADD_8_SUBA	    3

#define I2C_MO_STA1         0x08
#define I2C_MO_STA2         0x10
#define I2C_MO_ACK_SLAW     0x18
#define I2C_MO_NACK_SLAW    0x20
#define I2C_MO_ACK_I2DAT    0x28
#define I2C_MO_NACK_I2DAT   0x30
#define I2C_MO_ERR_BUS      0x38

#define I2C_MI_STA1         0x08
#define I2C_MI_STA2         0x10
#define I2C_MI_ERR_BUS      0x38
#define I2C_MI_ACK_SLAR     0x40
#define I2C_MI_NACK_SLAR    0x48
#define I2C_MI_ACK_I2DAT    0x50
#define I2C_MI_NACK_I2DAT   0x58

#define I2EN                6
#define STA                 5
#define STO                 4
#define SI                  3
#define AA                  2

/* 定义用于和I2C中断传递信息的全局变量 */
extern volatile uint8 	I2C_err;            // I2C出错状态代码
extern volatile uint8 	I2C_sla;			// I2C器件从地址
extern volatile uint32	I2C_suba;			// I2C器件内部子地址
extern volatile uint8 	I2C_suba_num;		// I2C子地址字节数
extern volatile uint8 	*I2C_buf;        	// 数据缓冲区指针
extern volatile uint32  I2C_num;			// 要读取/写入的数据个数
extern volatile uint8 	I2C_end;			// I2C总线结束标志:结束总线是置1
extern volatile uint8 	I2C_suba_en;		// 子地址控制
									// 0--子地址已经处理或者不需要子地址
									// 1--读取操作
                                    // 2--写操作

extern uint8 I2C_Buf[256];

extern void  IRQ_I2C(void);
extern void  I2C_Init(uint32 Fi2c);
extern void  I2C_IntInit(void);
extern void  I2C_Recover(void);
extern uint8 I2C_WriteByte(uint8 sla, uint8 dat);
extern uint8 I2C_ReadByte(uint8 sla, uint8 *dat);
extern uint8 I2C_ReadNByte (uint8 sla, uint32 suba_type, uint32 suba, uint8 *s, uint32 num);
extern uint8 I2C_WriteNByte(uint8 sla, uint8 suba_type, uint32 suba, uint8 *s, uint32 num);
extern void  I2C_IRQ_Exception(void);

#endif


⌨️ 快捷键说明

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