ov2640摄像头rgb数据存储的问题

2019-07-20 10:56发布

本帖最后由 cyg 于 2017-8-6 02:07 编辑

[mw_shl_code=c,true]        OV2640_ImageWin_Set(0,0,800,800);                                
        OV2640_RGB565_Mode();
        LCD_Set_Window(0,0,160,160);
        OV2640_OutSize_Set(160,160);
        
        My_DCMI_Init();               

        
        DCMI_DMA_Init((u32)&rgb_buf[0],rgb_buf_size,DMA_MemoryDataSize_Word,DMA_MemoryInc_Enable);
        DCMI_Start();[/mw_shl_code]

如上我设置的ov2640摄像头160*160的输出
理论上输出的rgb数据应该为160*160*2字节=51200B
51200/4=12800个U32大小。但是实际dma传送的数据为6408也就是多出了8个u32。。。
A6L[7`E1}O1K2M}F1$KZUR8.png
复位后的第一次数据正常,往后数据就多出来了,找了好久不知道怎么回事。

我试着将数据直接显示在lcd上时图像有错位,将数据前面的8个u32去除之后显示是正常的

[mw_shl_code=c,true]void show_rgb(u16 *p,u32 rgb_data_len)
{
        u32 i=0;
        LCD_SetCursor(0,0);  
        LCD_WriteRAM_Prepare();                //¿aê¼D′èëGRAM
        for(i=16;i<rgb_data_len*2;i++)
                LCD->LCD_RAM=p;        
}
[/mw_shl_code]
如上面是去掉了16个u16之后显示正常。求助!



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
cyg
1楼-- · 2019-07-20 16:33
@正点原子 求大神解答
正点原子
2楼-- · 2019-07-20 21:27
 精彩回答 2  元偷偷看……
cyg
3楼-- · 2019-07-20 22:08
正点原子 发表于 2017-8-7 01:12
这个不好说 啊,你设置其他窗口先试试看

其他窗口也是这个样,但是dma直接到gram没有问题
leiluo
4楼-- · 2019-07-21 02:56
 精彩回答 2  元偷偷看……

一周热门 更多>