OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4158|回复: 4

ov5640+4.3'TFTLCD显示问题

[复制链接]

3

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2015-1-15
在线时间
18 小时
发表于 2018-11-10 21:09:16 | 显示全部楼层 |阅读模式
1金钱
我现在需要将OV5640摄像头的数据放到SDRAM中,然后更改SDRAM的数据,实际上就是加入一些文字等,及图标,然后再在LCD上显示,如下图:
微信图片_20181110205859.jpg
我是用DMA方式在行中断中将OV5640的数据保存到了SDRAM中,
void HAL_DCMI_LineEventCallback(DCMI_HandleTypeDef *hdcmi)
{
        System.OV5640.CurrentLine++;
        __HAL_UNLOCK(&DMADMCI_Handler);
       
        HAL_DMA_Start(&DMADMCI_Handler,(u32)&DCMI->DR,
                                  System.Lcd.FrameBufStartAddr + (LCD_W * 2 * System.OV5640.CurrentLine),LCD_W);
        LED0 = !LED0;
}
然后在帧中断时更改SDRAM数据,将文字及图标填加进去,然后使用如下代码将数据传到LCD上:
LCD_SetCursor(0,0);  
LCD_WriteRAM_Prepare();

for(y = 0;y < LCD_H;y++)
{
        for(x = 0;x < LCD_W;x++)
        {
                ColorDataL = *(vu8*)(LCD_FRAME_BUF_ADDR  + (pt << 1));
                ColorDataH = *(vu8*)(LCD_FRAME_BUF_ADDR + (pt << 1) + 1);
                ColorData = (ColorDataH << 8) + ColorDataL;
                LCD_WriteRAM(ColorData);
                pt++;
        }
}

但这样的显示的帧率就会非常低,所以我想使用DMA2的内存到内存的方式代替上面的代码,但没有成功,请求帮助,如何配置啊。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2015-1-15
在线时间
18 小时
 楼主| 发表于 2018-11-10 21:10:47 | 显示全部楼层
补充一下:使用的单片机是STM32F429
回复

使用道具 举报

3

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2015-1-15
在线时间
18 小时
 楼主| 发表于 2018-11-11 13:05:34 | 显示全部楼层
顶一下,请大家帮个忙,谢谢了
回复

使用道具 举报

3

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2015-1-15
在线时间
18 小时
 楼主| 发表于 2018-11-15 14:08:56 | 显示全部楼层
顶一下
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-11-17 02:54:43 | 显示全部楼层
不好搞,用双层图层叠加吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 20:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表