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

📄 i2c.c

📁 用OV7720制作摄像头的详细电路原理图
💻 C
字号:
//=============================================================//文件名称:IIC.c//功能描述: IIC驱动//维护记录://          2007.09.24	V1.0    by chengju <chengju@sunnorth.com.cn>//=============================================================#include "SPCE3200_Register.h"#include "SPCE3200_Constant.h"#include "I2C.h"//=============================================================// 语法格式:	void IIC_Init(void);// 实现功能:	IIC初始化// 参数:		无// 返回值:		无//=============================================================void I2C_Init(void){	*P_I2C_CLK_CONF = C_I2C_CLK_EN					 | C_I2C_RST_DIS;			// I2C时钟模块使能	*P_I2C_INTERFACE_SEL |= C_I2C_PORT_SEL;		// GPIO复用,选择I2C	*P_I2C_RATE_SETUP = RATE;					// 设置I2C的通信速率为27M/60	*P_I2C_SLAVE_ADDR = SLAVE_ADDR;				// I2C从设备地址}//=============================================================// 语法格式:	unsigned int i2c_read8(int addr);// 实现功能:	读一字节// 参数:		地址// 返回值:		读出的数据//=============================================================unsigned int I2C_Read8(int addr){	unsigned int a;	*P_I2C_DATA_ADDR = addr;	*P_I2C_MODE_CTRL = C_I2C_RX_MODE | C_I2C_8BIT_START;	a = *P_I2C_INT_STATUS;	while(a==0)									// 等待读取		a = *P_I2C_INT_STATUS;	*P_I2C_INT_STATUS = C_I2C_INT_FLAG;	a = *P_I2C_MODE_CTRL & C_I2C_8BIT_ACK;		// 发应答数据	a = *P_I2C_RX_DATA;		return a;}//=============================================================// 语法格式:	void i2c_write8(int addr, unsigned int value);// 实现功能:	写一字节// 参数:		addr:要写入的地址;value:要写入的数据// 返回值:		无//=============================================================void I2C_Write8(int addr, unsigned int value){	unsigned int a;	*P_I2C_DATA_ADDR = addr;	*P_I2C_TX_DATA = value;		*P_I2C_MODE_CTRL = C_I2C_TX_MODE| C_I2C_8BIT_START;		a = *P_I2C_INT_STATUS;	while(a==0)									// 等待写入		a = *P_I2C_INT_STATUS;	*P_I2C_INT_STATUS = C_I2C_INT_FLAG;		a = *P_I2C_MODE_CTRL & C_I2C_8BIT_ACK;		// 发应答数据}

⌨️ 快捷键说明

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