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

📄 iic.h

📁 基于S3C4510的家庭网关的通讯进程程序源码
💻 H
字号:
/***********************************************************文件名:iic.h i2c函数库头文件功能:i2c数据结构的定义和函数的定义版本:version 1.0完成日期:2004.7.18***********************************************************/#ifndef _IIC_H_#define _IIC_H_#define SYS_BASE 		0x03ff0000#define SRAM_BASE		0x03fe0000#define IO_BASE 			0x03600000#define IOPMOD                 *((volatile unsigned*)(SYS_BASE+0x5000))#define IOPCON                  *((volatile unsigned*)(SYS_BASE+0x5004))#define IOPDATA                 *((volatile unsigned*)(SYS_BASE+0x5008))/********************//* I2C Bus Register *//********************/#define IICCON                 *((volatile unsigned*)(SYS_BASE+0xf000))#define IICBUF                  *((volatile unsigned*)(SYS_BASE+0xf004))#define IICPS                    *((volatile unsigned*)(SYS_BASE+0xf008))#define IICCOUNT 		*((volatile unsigned*)(SYS_Baser+0xf00c))#define BF 				0x01        //Buffer flag#define IEN				0x02        //Interrupt enable#define LRB				0x04        //Last bit received                                    			//ACK not received#define ACK				0x08        //Acknowlege enable                                    		//Generate an ACK signal at 9th SCL#define NOACK			0x00        //No more received data is required                                    			//from the slave#define START			0x10#define STOP				0x20#define RESTART			0x30#define BUSY				0x40#define IICRESET			0x80        //Reset the IIC-BUS controller#define IIC_DEV_0		0xa0    //IIC device's slave address#define S_WRITE			0x00    //Write IIC data for slave#define S_READ			0x01    //Read IIC data for slave/* Byte Slave transmitter and receive status flags */#define  iic_slave_addr       0x01  /* slave addr flag */#define  iic_byte_addr_msb 0x02  /* byte msb addr */#define  iic_byte_addr_lsb  0x04  /* byte lsb addr */#define  iic_page_tx_done  0x08  /* Page data transmit done */#define  iic_byte_rx_done   0x10  /* byte data receive done */#define  iic_repeat_start     0x20  /* flag for repeat start */#define  iic_multi_recv       	 0x40  /* recv multiple data */#define  iic_no_more_recv  0x80  /* no more recv from slave */#define S8            		signed char#define S16           		signed short#define S32           		signed long#define U8            		unsigned char#define U16           		unsigned short#define U32           		unsigned long#define REG8          		volatile unsigned char#define REG16         		volatile unsigned short#define REG32         		volatile unsigned long#define BYTE          		U8#define MHz      			1000000#define fMCLK                 	50*MHz       #define MCLK2                 	(fMCLK/2)#define fSCL         		400000     /* IIC Serial clock frequency */#define SizeOfPage		64#define StorageSize    	((64*1024)/8)/* Data structure for multiple byte slave transmitter format */#define Write_Cycle_ms(x)     (x*0.001*fMCLK-1) typedef struct {  volatile    U32  FLAG;  volatile    U32  BuffByteCnt;             /* Page buffer byte counter */   volatile    U32  WriteDataSize;           /* Page buffer byte counter */   volatile    U8   SLAVE_ADDR;              /* Slave address */  volatile    U8   BYTE_ADDR_MSB;           /* Byte MSB address */  volatile    U8   BYTE_ADDR_LSB;           /* Byte LSB address */  volatile    U8   PAGE_BUFFER[SizeOfPage+1]; /* IIC Page data buffer */} IIC_DATA_TX_FORMAT;typedef struct {  volatile    U32  FLAG;  volatile    U32  ByteReadCnt;               volatile    U32  ReadDataSize;               volatile    U8   SLAVE_ADDR;  volatile    U8   BYTE_ADDR_MSB;  volatile    U8   BYTE_ADDR_LSB;  volatile    U8   *RCV_BUFFER;} IIC_DATA_RX_FORMAT;/*=====================================================================*//*                       IIC SETUP ROUTINES (iic.c)                    *//*=====================================================================*/extern int  SetPreScaler(int sclk);extern void IicSetup(void);extern void IICReadTest(void);/*=====================================================================*//*             IIC LIBRARY FUNCTIONS FOR IIC READ & WRITE              *//*=====================================================================*/extern void IICWriteInt(U8 SlaveAddr,U16 WriteAddr,U8 *data,U32 SizeOfData);extern void *IICReadInt(U8 SlaveAddr,U16 ReadAddr,U32 SizeOfData);#endif   /* end of the IIC header file */

⌨️ 快捷键说明

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