2020-10-2对OV2640的寄存器进行改写和读取操作

对OV2640的寄存器进行改写和读取操作

(全部操作均基于OV2640的代码实现)
一、操作原理
1、(对OV2640的寄存器进行写入操作)使用函数:

SCCB_WR_Reg(u8 reg,u8 data);
    (1)返回值:0,成功;1,失败;
    (2)源代码:
        u8 SCCB_WR_Reg(u8 reg,u8 data)
{
	u8 res=0;
	SCCB_Start(); 					//启动SCCB传输
	if(SCCB_WR_Byte(SCCB_ID))res=1;	//写器件ID	  
	delay_us(100);
  	if(SCCB_WR_Byte(reg))res=1;		//写寄存器地址	  
	delay_us(100);
  	if(SCCB_WR_Byte(data))res=1; 	//写数据 
  	SCCB_Stop();	  
  	return	res;
}		  					    

2、(读寄存器)使用函数:

SCCB_RD_Reg(u8 reg);
 (1)返回值:读到的寄存器的值;
 (2)源代码:
     u8 SCCB_RD_Reg(u8 reg)
{
	u8 val=0;
	SCCB_Start(); 				//启动SCCB传输
	SCCB_WR_Byte(SCCB_ID);		//写器件ID
	delay_us(100);	 
  	SCCB_WR_Byte(reg);			//写寄存器地址
	delay_us(100);	  
	SCCB_Stop();   
	delay_us(100);	   
	//设置寄存器地址,然后才是读
	SCCB_Start();
	SCCB_WR_Byte(SCCB_ID|0X01);	//发送读命令	  
	delay_us(100);
  	val=SCCB_RD_Byte();		 	//读取数据
  	SCCB_No_Ack();
  	SCCB_Stop();
  	return val;
}

3、实例:
(1)对OV2640的寄存器进行改写,并进行读取后显示在LCD上(源代码):

u16 test;
	SCCB_WR_Reg(0x24,0x77);
	test=SCCB_RD_Reg(0x24);
	
	LCD_ShowNum(10,20,test,4,16);
	LCD_ShowNum(20,40,test,5,16);
	LCD_ShowNum(30,60,test,6,16);
	LCD_ShowNum(40,80,test,5,16);
	LCD_ShowNum(50,100,test,6,16);
	LCD_ShowNum(60,120,test,7,16);
	LCD_ShowNum(70,140,test,8,16);
	LCD_ShowNum(80,240,test,9,16);

(2)对OV2640的芯片地址(厂家地址)进行读取并显示(源代码):

 SCCB_Init();        //初始化SCCB接口
    u16 reg;
	reg=SCCB_RD_Reg(OV2640_SENSOR_MIDH);	//读取厂家ID高八位
	reg|=SCCB_RD_Reg(OV2640_SENSOR_MIDL);	//读取厂家ID低八位
	
	reg=SCCB_RD_Reg(OV2640_SENSOR_PIDH);	//读取厂家ID高八位
	reg<<=8;
	reg|=SCCB_RD_Reg(OV2640_SENSOR_PIDL);	//读取厂家ID低八位
	//依次显示厂家ID
	LCD_ShowNum(10,20,reg,4,16);
	LCD_ShowNum(20,40,reg,5,16);
	LCD_ShowNum(30,60,reg,6,16);
	LCD_ShowNum(40,80,reg,5,16);
	LCD_ShowNum(50,100,reg,6,16);
	LCD_ShowNum(60,120,reg,7,16);
	LCD_ShowNum(70,140,reg,8,16);
	LCD_ShowNum(80,240,reg,9,16);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值