📄 io-smbus.h
字号:
/****************************************************************
*文件名:I2C.h
*描述:提供I2C的底层驱动,可选的400K或100K速度。
*环境:KEIL C51
*版本:v1.0
*作者:wentsing
*日期:2006/03/07
******************************************************************/
/****************************************************************
〖说明〗I2C总线驱动程序(用两个普通IO模拟I2C总线)
包括100Khz(T=10us)的标准模式(慢速模式)选择,
和400Khz(T=2.5us)的快速模式选择,
默认12Mhz的晶振。
*****************************************************************/
#if I2C_C
#ifndef SDA
#define SDA P2_7
#define SCL P2_6
#endif
// #define bool bit
/*************************内部定义***************************/
#define I2C_100K 0 //100K速度模式
#define I2C_400K 1 //400K速度模式
/*************************配置参数***************************/
#define I2C_SPEED I2C_400K //配置速度为400K
#if KEILC51
#define NOP() _nop_() //空等待
#define SomeNOP(); _nop_();_nop_();_nop_();_nop_();
#endif
/****************************************************************
下面是可以调用的函数定义
*****************************************************************/
/****************************************************************
*函数性质:公共
*入口:无
*出口:无
*功能:I2C专用
*调用方式:void I2CStart(void)
*****************************************************************/
void I2CStart(void);
/****************************************************************
*函数性质:公共
*入口:无
*出口:无
*功能:I2C专用
*调用方式:void I2CStop(void)
*****************************************************************/
void I2CStop(void);
/****************************************************************
*函数性质:公共
*入口:无
*出口:无
*功能:I2C专用,等待从器件接收方的应答
*调用方式:bit WaitAck(void)
*****************************************************************/
bool WaitAck(void);
/****************************************************************
*函数性质:公共
*入口:无
*出口:无
*功能:I2C专用,主器件为接收方,从器件为发送方时,应答信号。
*调用方式:void SendAck(void)
*****************************************************************/
void SendAck(void);
/****************************************************************
*函数性质:公共
*入口:无
*出口:无
*功能:I2C专用,主器件为接收方,从器件为发送方时,非应答信号。
*调用方式:void SendNotAck(void)
*****************************************************************/
void SendNotAck(void);
/****************************************************************
*函数性质:公共
*入口:无
*出口:无
*功能:I2C专用
*调用方式:void I2CSendByte(uchar ch)
*****************************************************************/
void I2CSendByte(byte ch);
/****************************************************************
*函数性质:公共
*入口:无
*出口:无
*功能:I2C专用
*调用方式:uchar I2CReceiveByte(void)
*****************************************************************/
unsigned char I2CReceiveByte(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -