STM32/STM8技术william hill官网
直播中

rosa

12年用户 1211经验值
私信 关注
[问答]

stm32控制摄像头ov7670时TFT在不同范围时,摄像头出问题了

请大师指点一下
现在我在用——STM32F103ZE,摄像头是带FIFO的ov7670,显示屏是ILI9320(320×240),
下面程序中问题来源是
:        for(i = 0; i < 9600; i ++)
                   for(j = 0; j <8; j ++)
                           ......
如果是 i<9600,j<8,TFT可以很清晰的显示摄像头拍摄的图像,
但是如果换成 i<320,j<240 ,或者是其它,TFT就不能清楚的现实图像,这是为什么呢?


中断的程序如下:
void EXti15_10_IRQHandler(void)
{
        u16 i,j;
        u16 t1,t2;
        EXTI_ClearITPendingBit(EXTI_Line11);                  
        Vsync_Flag++;
        if(Vsync_Flag==1)    //FIFO写指针复位
        {
            FIFO_WRST=1;
                FIFO_WRST=0;
                for(i=0;i<100;i++);
                FIFO_WRST=1;      
                FIFO_WR=1;           //允许CMOS数据写入FIFO
               
        }
        if(Vsync_Flag==2)
        {
                 FIFO_WR=0;     //禁止CMOS数据写入FIF0
                FIFO_RRST=0;  //FIFO读指针复位
                FIFO_RCK=0;               
                FIFO_RCK=1;        
                FIFO_RCK=0;
                FIFO_RCK=1;
                  FIFO_RRST=1;
        LCD_SetDisplayWindow(0,0,239,319);

                LCD_WriteRAM_Prepare();        
                delay_us(20);
                FIFO_OE=0;                          //允许FIFO输出
                for(i = 0; i < 9600; i ++)         //该开发的TFT屏最大显示尺寸320*240
                 {        
                  
                         for(j = 0; j <8; j ++)
                        {                                                                                
                                FIFO_RCK=0;                                       
                                FIFO_RCK=1;                                                
                                t1=(0x00ff&GPIOC->IDR);                                         
                                FIFO_RCK=0;                                                
                                FIFO_RCK=1;                                                
                                t2=(0x00ff&GPIOC->IDR);                                 
                                LCD_WriteRAM((t1<<8)|t2);
//                                delay_us(3);                                                                                             
                        }
                }
                FIFO_OE=1;                           //禁止FIFO输出
                Vsync_Flag=0;           

        }                 
               
}



回帖(3)

z00

2014-4-3 16:12:04
如果是 i<9600,j<8,TFT可以很清晰的显示摄像头拍摄的图像,
但是如果换成 i<320,j<240 ,或者是其它,TFT就不能清楚的现实图像,这是为什么呢?
-------------------
这是因为显示缓冲区的显示方式是9600*8,每次显示8个字节,而不是320*240
举报

youzizhile

2014-4-6 23:30:18
二楼很强大
举报

袁香江

2017-8-8 21:34:13
{:1:}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分