把ov2640采集到的值传到buffer[160][120]中,不做任何处理,再传输到lcd上显示,可是显示的是全黑

2019-07-20 06:04发布

本帖最后由 huyang201306 于 2016-8-17 16:36 编辑

DCMI开始传输 DCMI开始传输 [attach]60937[/attach   ] JPEG数据处理 JPEG数据处理 rgb565 rgb565 帧中断 帧中断
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
yhh
1楼-- · 2019-07-22 06:31
 精彩回答 2  元偷偷看……
脚叔
2楼-- · 2019-07-22 07:46
参考了版主的代码,自己又重新理解了原子哥代码,实现了160*120的数据搬移和显示,main函数我没动。我的核心代码如下:rgb565_test这个函数中改了这几个函数       
DCMI_DMA_Init((u32)&buffer,buf_size,DMA_MemoryDataSize_HalfWord,DMA_MemoryInc_Enable);
OV2640_OutSize_Set(320,240);
        while(1)
        {
        DMA_Cmd(DMA2_Stream1, ENABLE);
        DCMI_CaptureCmd(ENABLE);
        }

jpeg_data_process这个函数中原来的全部去掉,改成下面内容:
u16 i,j,Bdata,data=0;
for(i=0;i<120;i++)
                for(j=0;j<160;j++)
                        {
                                Bdata=data++;
                                LCD_SetCursor(j,i);   
                                LCD_WriteRAM_Prepare();   
                                LCD->LCD_RAM=buffer[Bdata];
                        }
Bdata = 0;
data = 0;

其中有几个参数的设置如下:
#define buf_size 160*120
u32 buffer[buf_size];


现象是会在屏幕上看到有一个160*120的窗口,实时显示着摄像头采集回来的数据。


有一点让我感到很纳闷,那就是我把OV2640_OutSize_Set(320,240); 改成OV2640_OutSize_Set(160,120); 显示的是四个窗口,四个都是一样的窗口,不明白是哪里错了,我知道是摄像头的设置有问题,改成了OV2640_OutSize_Set(320,240); 输出的视频数据正常。还希望原子哥解答一下,该怎么去设置 @正点原子
脚叔
3楼-- · 2019-07-22 10:53
yhh 发表于 2017-3-25 21:55
怎么解决的?

看我的回复
脚叔
4楼-- · 2019-07-22 12:33
 精彩回答 2  元偷偷看……
月月乐
5楼-- · 2019-07-22 12:43
脚叔 发表于 2017-5-12 15:46
参考了版主的代码,自己又重新理解了原子哥代码,实现了160*120的数据搬移和显示,main函数我没动。我的核 ...

你好,我照着您的代码试了一下,但是显示设置变量过大,就是buffer,用的是正点原子407的板子,就算把他弄成80*60还是显示没有空间,不知道怎么回事
淡淡青衫
6楼-- · 2019-07-22 13:26
 精彩回答 2  元偷偷看……

一周热门 更多>