[STM32F4] STM32F429+无FIFO的OV7725显示问题

[复制链接]
1568|8
 楼主| 992913541 发表于 2019-7-26 17:42 | 显示全部楼层 |阅读模式
用的DCMI+DMA读OV7725的数据,行中断来一次向显示屏显示地址写一次,场中断来了,行中断清零,但是显示出现显示错位的问题
 楼主| 992913541 发表于 2019-7-26 17:44 | 显示全部楼层
大概就是这种情况
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大小的图像
七颗咖啡豆 发表于 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
七颗咖啡豆 发表于 2019-7-27 15:28 | 显示全部楼层
七颗咖啡豆 发表于 2019-7-27 15:24
开双缓冲  双LCD player  开一个任务while(1) 里面定期(如20ms)处理DMA和LCD显示
STM32429有三层player,最 ...

是能DMA里面做场同步操作,场中断中加变量标志就行了
 楼主| 992913541 发表于 2019-7-27 22:21 | 显示全部楼层
七颗咖啡豆 发表于 2019-7-27 15:24
开双缓冲  双LCD player  开一个任务while(1) 里面定期(如20ms)处理DMA和LCD显示
STM32429有三层player,最 ...

谢谢,我试一试
磨砂 发表于 2019-8-15 10:11 | 显示全部楼层
没有这种必要
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部