i2c.h

来自「I2C.H,I2C通信头文件类的设置,请参考」· C头文件 代码 · 共 58 行

H
58
字号
// I2C.h: interface for the I2C class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_I2C_H__88C8F03C_C61A_4782_BAF6_4676BB02CD4A__INCLUDED_)
#define AFX_I2C_H__88C8F03C_C61A_4782_BAF6_4676BB02CD4A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class I2C  
{
public:
	I2C();
	virtual ~I2C();
	bool WriteData(UCHAR i2cAddr, UCHAR regAddr, UCHAR *pSendData, int n);
	bool ReadData(UCHAR i2cAddr, UCHAR regAddr, UCHAR *pReadData, int n);
	//bool WriteData1(UCHAR i2cAddr, UCHAR regAddr, UCHAR *pSendData, int n);
	//bool WriteData2(UCHAR i2cAddr, UCHAR regAddr, UCHAR *pSendData, int n);

private:
	void ReadLPTStateData();
	
	void SetSCL();
	void ClrSCL();
	void SetSDA();
	void ClrSDA();
	
	void Start();
	void ReStart();
	void Stop();
	void SendByte();
	void ReceiveByte();
	bool WaitACK();
	void SendACK();
	void SendNotACK();

	void Delay(UINT i);


	ULONG m_LPTDataAddr;    // 数据寄存器地址
	ULONG m_LPTStatusAddr;  // 状态寄存器地址
	ULONG m_LPTControlAddr; // 控制寄存器地址

	UCHAR m_readByte;   // read byte
	UCHAR m_sendByte;    // send byte

	ULONG m_LPTaddr; // 选择的LPT地址

	UCHAR m_SCL;   // I2C CLOCK
	UCHAR m_SDA;   // I2C SDA OUT
	UCHAR m_SDAIn;  // I2C SDA IN
	//UCHAR m_SDAIn1;
};

#endif // !defined(AFX_I2C_H__88C8F03C_C61A_4782_BAF6_4676BB02CD4A__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?