📄 i2cdriver_8260.h
字号:
#ifndef __I2CDRIVER_H__#define __I2CDRIVER_H__#ifdef __cplusplusextern "C" {#endif#include "../../../../COMM_DRV/nbDrvDef.h"#include "../../../../COMM_DRV/nbDrvCommIntf.h"/* Local Buffer size*/#define BUFF_MAX_LEN 0x0100 /* Maximum length of frame (arbitrary choice) *//* Local Buffer */typedef UINT8 LOCAL_BUF[BUFF_MAX_LEN]; /* Account for Null Terminator *//*define RXBD and TXBD*/#define I2C_RXBD 0x3000#define I2C_TXBD 0x2c00/* txrx Buffer num */#define NUM_I2C_RXBDS 1#define NUM_I2C_TXBDS 2#define I2C_TXBD_INDX (NUM_I2C_RXBDS)/* I2C work mode */#define I2C_MODE_MASTER 1#define I2C_MODE_SLAVE 0/* i2c bdrings offset */#define I2C_BDS_OFFSET 0x3e80/***********************//* I2C ERROR define*//***********************/#define I2C_ERR_BASE 10#define I2C_ERR_BUSY I2C_ERR_BASE-1#define I2C_ERR_TRANS I2C_ERR_BASE-2#define I2C_ERR_READ_BUSY I2C_ERR_BASE-3#define I2C_ERR_READ I2C_ERR_BASE-4#define I2C_ERR_WRITE I2C_ERR_BASE-5#define I2C_ERR_SYS I2C_ERR_BASE-6#define I2C_ERR_TEST I2C_ERR_BASE-7#define I2C_ERR_PARM I2C_ERR_BASE-8/* Buffer Descriptor Format */typedef struct{ UINT16 bd_cstatus; /* control and status */ UINT16 bd_length; /* transfer length */ UINT8 *bd_addr; /* buffer address */}I2cBd;/* BD ring */typedef struct { I2cBd RxBD[NUM_I2C_RXBDS]; /* Rx BD ring */ I2cBd TxBD[NUM_I2C_TXBDS]; /* Tx BD ring */}I2cBdrings;/* Internal Routines */SYS_STATUS i2c_init(UINT8 local_addr, UINT8 oprt_mode);SYS_STATUS i2c_read(UINT8 trgt_addr,UINT8 data_addr,UINT16 read_len,UINT8 flag,UINT8 *recv_data_ptr);SYS_STATUS i2c_write(UINT8 trgt_addr,UINT8 data_addr,UINT16 write_len,UINT8 *send_data_ptr);SYS_STATUS i2c_test_write_read(UINT8 trgt_addr,UINT8 data_addr,UINT8 send_data,UINT8 *recv_data_ptr);void i2cInterruptHandler(void);#ifdef __cplusplus}#endif #endif /*_I2CDRIVER_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -