📄 i2c.h
字号:
#ifndef __I2C_H
#define __I2C_H
#define WRITE 0x00 // SMBus 写命令
#define READ 0x01 // SMBus 读命令
// 器件地址(7位,最低位没使用)
#define CHIP_A 0xA0 // 芯片A的器件地址
#define CHIP_B 0xA2 // 芯片B的器件地址
#define CHIP_C 0xA4 // 芯片C的器件地址
// SMBus状态
// MT = 主发送器
// MR = 主接收器
#define SMB_BUS_ERROR 0x00 // (对所有方式)总线错误
#define SMB_START 0x08 // (MT & MR)起始条件已发送
#define SMB_RP_START 0x10 // (MT & MR)重复起始条件
#define SMB_MTADDACK 0x18 // (MT) 从地址 + W 已发送;收到ACK
#define SMB_MTADDNACK 0x20 // (MT) 从地址 + W 已发送;收到NACK
#define SMB_MTDBACK 0x28 // (MT) 数据字节已发送;收到ACK
#define SMB_MTDBNACK 0x30 // (MT) 数据字节已发送;收到NACK
#define SMB_MTARBLOST 0x38 // (MT) 竞争失败
#define SMB_MRADDACK 0x40 // (MR) 从地址 + R 已发送;收到ACK
#define SMB_MRADDNACK 0x48 // (MR) 从地址 + W 已发送;收到NACK
#define SMB_MRDBACK 0x50 // (MR) 收到数据字节;ACK已发送
#define SMB_MRDBNACK 0x58 // (MR) 收到数据字节;NACK已发送
#define I2C_WRITE_END 1 /* 写完成 */
#define I2C_READ_END 2 /* 读完成 */
#define I2C_NOT_GET_BUS 4 /* 丢失仲裁 */
#define I2C_ACK_ERR 8 /* 接收ACK错误 */
#define SINGLE_ADD 0
#define DOUBLE_ADD 1
extern INT8U I2cInit(void) reentrant ;
extern void SM_Send (INT8U chip_select, INT16U byte_address,INT8U len, INT8U out_byte) reentrant;
extern char SM_Receive (char chip_select, INT16U byte_address,INT8U len) reentrant;
extern void IIC_isr(void) reentrant;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -