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

📄 twi.h

📁 avr单片机的twi(i2c)驱动程序
💻 H
字号:
/*-----------------------------------------------------------------------
延时函数
系统时钟: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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -