📄 i2c.h
字号:
/*
*********************************************************************************************************
* Copyright (c) 2003,
* All rights reserved.
*
* 文件名称:i2c.h
* 文件标识:无
* 摘 要:
*
* 当前版本:0.1
* 作 者:
* 完成日期:2006年5月10日
*********************************************************************************************************
*/
#ifndef __I2C_H // 防止头文件被重复引用
#define __I2C_H
/*
*********************************************************************************************************
*
* 包含头文件
*
*********************************************************************************************************
*/
#include <c8051F020.h>
#include <absacc.h>
/*
*********************************************************************************************************
*
* 常量定义
*
*********************************************************************************************************
*/
#define WRITE 0x00 // SMBus WRITE command
#define READ 0x01 // SMBus READ command
// Device addresses (7 bits, lsb is a don't care)
#define CHIP_A 0xA0 // Device address for chip A
#define CHIP_B 0xA2 // Device address for chip B
#define CHIP_C 0xA4 // Device address for chip C
// SMBus states:
// MT = Master Transmitter
// MR = Master Receiver
#define SMB_BUS_ERROR 0x00 // (all modes) BUS ERROR
#define SMB_START 0x08 // (MT & MR) START transmitted
#define SMB_RP_START 0x10 // (MT & MR) repeated START
#define SMB_MTADDACK 0x18 // (MT) Slave address + W transmitted;
// ACK received
#define SMB_MTADDNACK 0x20 // (MT) Slave address + W transmitted;
// NACK received
#define SMB_MTDBACK 0x28 // (MT) data byte transmitted; ACK rec'vd
#define SMB_MTDBNACK 0x30 // (MT) data byte transmitted; NACK rec'vd
#define SMB_MTARBLOST 0x38 // (MT) arbitration lost
#define SMB_MRADDACK 0x40 // (MR) Slave address + R transmitted;
// ACK received
#define SMB_MRADDNACK 0x48 // (MR) Slave address + R transmitted;
// NACK received
#define SMB_MRDBACK 0x50 // (MR) data byte rec'vd; ACK transmitted
#define SMB_MRDBNACK 0x58 // (MR) data byte rec'vd; NACK transmitted
/*
*********************************************************************************************************
*
* 函数预定义
*
*********************************************************************************************************
*/
void SMBus_ISR (void);
void SM_Send (char chip_select, unsigned int byte_address, char out_byte);
char SM_Receive (char chip_select, unsigned int byte_address);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -