本帖最后由 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);瞬间能正常显示一帧,只是一帧!!如图
应该是不知道在那个地方光标又跳回(0,0)所致。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>