新手上路
- 积分
- 22
- 金钱
- 22
- 注册时间
- 2019-11-29
- 在线时间
- 9 小时
|
3金钱
只对这两部分代码进行了修改 其余的更原子哥的一样
帧中断代码
void EXTI9_5_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line8)==SET) //是8线的中断
{
if(ov_sta<2)
{
if(ov_sta==0)
{
OV7725_WRST=0; //复位写指针
OV7725_WRST=1;
OV7725_WREN=1; //写允许
}else OV7725_WREN=0; //写禁止
ov_sta++;
}
}
EXTI_ClearITPendingBit(EXTI_Line8); //清除EXTI8中断标志位
}
LCD更新显示代码
void OV7725_camera_refresh(void)
{
u32 i,j;
u16 color,dat;
if(ov_sta==2)//有帧中断更新
{
OV7725_WREN=1;
OV7725_WRST=1;
LCD_Scan_Dir(U2D_L2R); //从上到下,从左到右
LCD_Set_Window((lcddev.width-320)/2,(lcddev.height-240)/2,320,240);//将显示区域设置到屏幕中央
if(lcddev.id==0X1963)
LCD_Set_Window((lcddev.width-320)/2,(lcddev.height-240)/2,240,320);//将显示区域设置到屏幕中央
LCD_WriteRAM_Prepare(); //开始写入GRAM
OV7725_CS=0;
OV7725_RRST=0; //开始复位读指针
OV7725_RCK_L;
OV7725_RCK_H;
OV7725_RCK_L;
OV7725_RRST=1; //复位读指针结束
OV7725_RCK_H;
for(i=0;i<240;i++)
{
for(j=0;j<320;j++)
{
OV7725_RCK_L;
color=GPIOC->IDR&0XFF; //读数据
OV7725_RCK_H;
dat=color<<8;
OV7725_RCK_L;
color=GPIOC->IDR&0XFF; //读数据
dat|=color;
OV7725_RCK_H;
LCD->LCD_RAM=dat;
}
}
OV7725_CS=1;
OV7725_RCK_L;
OV7725_RCK_H;
ov_sta=0; //清零帧中断标记
LCD_Scan_Dir(DFT_SCAN_DIR); //恢复默认扫描方向
}
}
|
-
分屏问题
|