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

📄 i2c.h

📁 uCos-ii 2.86 在C8051F410单片机上移植成功!!! 其中包括:UART驱动
💻 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 + -