twi.h

来自「avr单片机的twi(i2c)驱动程序」· C头文件 代码 · 共 89 行

H
89
字号
/*-----------------------------------------------------------------------
延时函数
系统时钟:8M
-----------------------------------------------------------------------*/
#ifndef TWI_H
#define TWI_H

#ifdef TWI_C		//自身文件识别标志符,当识别到是自身c文件,不定义为extern
	#define EXTERN
#else
	#define EXTERN extern
#endif		//#ifdef TWI_C
/*
#ifdef TWI_C
//只对自身c文件有效的一些定义,如果没有此部分可以省略
#endif
*/
/*******************************************************************
TWI状态/控制寄存器定义
********************************************************************/
#define TWI_BUFFER_SIZE		11
	//一次读写最大数据字节个数+1字节的从机地址+命令/内部地址字节数
#define TWI_TWBR			0x0C	//TWI bit rate Register setting		

//常量的定义区


//全局变量的定义区
//EXTERN uchar TWI_statusReg;


EXTERN void TWI_Master_Initialise(void); 
EXTERN char TWI_Transceiver_Busy(void); 
EXTERN char TWI_Get_State_Info(void);//发送数据包
EXTERN void TWI_Start_Transceiver_With_Data(uchar *,uchar);//检验数据包是否发送完成
EXTERN void TWI_Start_Transceiver(void);
EXTERN uchar TWI_Get_Data_From_Transceiver(uchar *,uchar);

/*******************************************************************
Bit and byte definations
********************************************************************/
#define TWI_READ_BIT	0
#define TWI_ADR_BITS	1
#define TRUE			1
#define FALSE			0

/*******************************************************************
TWI状态字
********************************************************************/
//General TWI Master staus codes
#define TWI_START		0x08
#define TWI_REP_START	0x10
#define TWI_ARB_LOST	0x38	//Arbitration lost

//TWI Master Transmitter staus codes
#define TWI_MTX_ADR_ACK		0x18
#define TWI_MTX_ADR_NACK	0x20
#define TWI_MTX_DATA_ACK	0x28
#define TWI_MTX_DATA_NACK	0x30

//TWI_Master Receiver staus codes
#define TWI_MRX_ADR_ACK		0x40
#define TWI_MRX_ADR_NACK	0x48
#define TWI_MRX_DATA_ACK	0x50
#define TWI_MRX_DATA_NACK	0x58
//TWI Slave Transmitter staus codes
#define TWI_STX_ADR_ACK		0xA8
#define TWI_STX_ADR_ACK_M_ARB_LOST		0xB0
#define TWI_STX_DATA_ACK	0xB8
#define TWI_STX_DATA_NACK	0xC0

//TWI Slave Receiver staus codes
#define TWI_SRX_ADR_ACK		0x60
#define TWI_SRX_ADR_ACK_M_ARB_LOST		0x68
#define TWI_SRX_GEN_ACK		0x70
#define TWI_SRX_GEN_ACK_M_ARB_LOST		0x78

#define TWI_SRX_ADR_DATA_ACK		0x80
#define TWI_SRX_ADR_DATA_NACK		0x88
#define TWI_SRX_GEN_DATA_ACK		0x90
#define TWI_SRX_GEN_DATA_NACK		0x98
#define TWI_SRX_STOP_RESTART		0x98

//TWI Miscellaneous status codes
#define TWI_NO_STATE				0xF8
#define TWI_BUS_ERROR				0x00

#undef EXTERN
#endif		//#ifndef TWI_H

⌨️ 快捷键说明

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