📄 i2cint.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 + -