在TFT屏中间开窗显示摄像头视频问题

2019-07-20 02:45发布

本帖最后由 danielhuang 于 2019-4-4 17:31 编辑

刚好做开摄像头实验,自已想修改一下程序。4.3寸屏,横屏(800*480)使用。现在想在屏正中间开个(320*240)的窗口显示摄像头视频内容。
但用开窗函数只能在左上角开窗(显示正常),搜索论坛贴子找不到答案。
LCD_Set_Window(240,120,320,240);//屏幕正中开窗
LCD_SetCursor(240, 120);//设置光标
原子哥说过是
LCD_Clear();  LCD_SetCursor(0x00,0x0000);         清除函数内光标复位问题。
但我把开窗函数LCD_Set_Window();后面的清除函数LCD_Clear(); 都去掉了,还是不能正常显示。

想问用原子现有的LCD函数能实现我的要求吗?还是要自己写代码实现,谢谢。请求帮忙。


已经设置以下两函数

//DCMI,启动传输
void DCMI_Start(void)
{  
          LCD_SetCursor(240,120);  
        LCD_WriteRAM_Prepare();                //开始写入GRAM
        DMA2_Stream1->CR|=1<<0;                //开启DMA2,Stream1
        DCMI->CR|=1<<0;                         //DCMI捕获使能  
}

//以下两个函数,供usmart调用,用于调试代码
//DCMI设置显示窗口
//sx,sy;LCD的起始坐标
//width,heightCD显示范围.

void DCMI_Set_Window(u16 sx,u16 sy,u16 width,u16 height)       //DCMI_Set_Window(240,120,320,240);
{
        DCMI_Stop();
        LCD_Clear(WHITE);
        LCD_Set_Window(sx,sy,width,height);
        OV5640_OutSize_Set(0,0,width,height);
          LCD_SetCursor(sx,sy);  
        LCD_WriteRAM_Prepare();                //开始写入GRAM
        DMA2_Stream1->CR|=1<<0;                //开启DMA2,Stream1
        DCMI->CR|=1<<0;                         //DCMI捕获使能  
}

用USMART调用DCMI_Set_Window(240,120,320,240);瞬间能正常显示一帧,只是一帧!!如图
IMG_20190404_164443.jpg
应该是不知道在那个地方光标又跳回(0,0)所致。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。