打印
[STM32F4]

STM32F429+无FIFO的OV7725显示问题

[复制链接]
1404|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用的DCMI+DMA读OV7725的数据,行中断来一次向显示屏显示地址写一次,场中断来了,行中断清零,但是显示出现显示错位的问题

使用特权

评论回复
沙发
992913541|  楼主 | 2019-7-26 17:44 | 只看该作者
大概就是这种情况

IMG_20190726_173.jpg (634.9 KB )

IMG_20190726_173.jpg

使用特权

评论回复
板凳
七颗咖啡豆| | 2019-7-26 21:14 | 只看该作者
没必要啊,直接DCMI DMA 到显存就是了,不要CPU

使用特权

评论回复
地板
992913541|  楼主 | 2019-7-27 10:44 | 只看该作者
七颗咖啡豆 发表于 2019-7-26 21:14
没必要啊,直接DCMI DMA 到显存就是了,不要CPU

不需要DMA中断?那怎么显示一帧图像而不会乱呢?我用的是ILI9341显示屏,需要显示170*170大小的图像

使用特权

评论回复
5
七颗咖啡豆| | 2019-7-27 15:24 | 只看该作者
本帖最后由 七颗咖啡豆 于 2019-7-27 15:29 编辑

开双缓冲  双LCD player  开一个任务while(1) 里面定期(如20ms)处理DMA和LCD显示
STM32429有三层player,最底层的背景不用管了,这里用上面两层,透明度都设置为不透明
LCD上面两层 player 地址指向这两个buffer
dcmi_buffer1 --> LCD player1
dcmi_buffer2 --> LCD Player2

设置第一个dcmi_buffer1 为DCMI DMA接收缓冲
设置 player2显示
启动一次DMA
{
  等待DMA传输完成
  设置dcmi_buffer2 为DCMI DMA接收缓冲
  关闭player2,开启player1显示
  使能DMA

  等待DMA传输完成
  设置dcmi_buffer1 为DCMI DMA接收缓冲
  关闭player1,开启player2显示
  使能DMA
}
7725数据格式和LCD格式弄一致  RGB565

使用特权

评论回复
6
七颗咖啡豆| | 2019-7-27 15:28 | 只看该作者
七颗咖啡豆 发表于 2019-7-27 15:24
开双缓冲  双LCD player  开一个任务while(1) 里面定期(如20ms)处理DMA和LCD显示
STM32429有三层player,最 ...

是能DMA里面做场同步操作,场中断中加变量标志就行了

使用特权

评论回复
7
992913541|  楼主 | 2019-7-27 22:21 | 只看该作者
七颗咖啡豆 发表于 2019-7-27 15:24
开双缓冲  双LCD player  开一个任务while(1) 里面定期(如20ms)处理DMA和LCD显示
STM32429有三层player,最 ...

谢谢,我试一试

使用特权

评论回复
8
磨砂| | 2019-8-15 10:11 | 只看该作者
没有这种必要

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝