OpenEdv-开源电子网

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

STM32F429如何控制OV5640采集数据在液晶屏上显示采集到的图像

[复制链接]

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2020-11-27
在线时间
32 小时
发表于 2020-12-24 09:16:19 | 显示全部楼层 |阅读模式
1金钱
我现在用STM32F429来采集OV5640采集的图像在LCD上显示,我使用的是DVP接口,8位数据宽度。我用LCD的显存来存储一帧数据。使用DMA方式获取OV5640的图像数据存储到LCD的显存里面,这个显存可以存储下一帧数据,所以没有外扩SDRAM。采用的方式是存一帧发一帧然后再存再发。现在的问题是我用DMA方式处理数据的时候怎么设定目的存储器地址呢?外设是DCMI这个没问题,但是目的存储器地址怎么设置呢?哪位大神知道,帮解决一下?谢谢了!

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

使用道具 举报

11

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
490
金钱
490
注册时间
2017-10-29
在线时间
150 小时
发表于 2020-12-24 13:13:06 | 显示全部楼层
你LCD什么接口的啊,比如IIC,SPI,或者并口屏,你用什么驱动的,就把DMA目的地址设置为哪里呗,模拟的直接放到某一段RAM里,搬运完了写入屏幕,写完开始下一帧捕获
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2020-11-27
在线时间
32 小时
 楼主| 发表于 2020-12-24 13:32:05 | 显示全部楼层
LCD采用的是SPI通信方式!怎么获取DMA的目的地址呀?我没明白你的意思!
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2020-11-27
在线时间
32 小时
 楼主| 发表于 2020-12-24 13:33:33 | 显示全部楼层
模拟的直接放到某一段RAM里?这个是指的LCD的显存吗?429内置的RAM不够用的!
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2020-11-27
在线时间
32 小时
 楼主| 发表于 2020-12-24 14:09:45 | 显示全部楼层
繁星之下 发表于 2020-12-24 13:13
你LCD什么接口的啊,比如IIC,SPI,或者并口屏,你用什么驱动的,就把DMA目的地址设置为哪里呗,模拟的直接 ...

能帮忙解决一下吗?谢谢!!
回复

使用道具 举报

2

主题

582

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2690
金钱
2690
注册时间
2014-5-23
在线时间
188 小时
发表于 2020-12-24 18:12:39 | 显示全部楼层
目的地址就是显存
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2020-11-27
在线时间
32 小时
 楼主| 发表于 2020-12-25 07:50:34 | 显示全部楼层
awsawzj 发表于 2020-12-24 18:12
目的地址就是显存

那怎么确定这个地址呢?怎么计算呢?
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2020-11-27
在线时间
32 小时
 楼主| 发表于 2020-12-25 08:27:34 | 显示全部楼层
awsawzj 发表于 2020-12-24 18:12
目的地址就是显存

那这个地址怎么确定呢?
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2020-11-27
在线时间
32 小时
 楼主| 发表于 2020-12-25 08:36:02 | 显示全部楼层
这个目的地址怎么确定呢?是不是429可以自动识别它的地址范围呢(根据SPI总线自动识别)?然后根据这个来确定缓存地址?
回复

使用道具 举报

11

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
490
金钱
490
注册时间
2017-10-29
在线时间
150 小时
发表于 2020-12-25 08:39:44 | 显示全部楼层
sunchangdong 发表于 2020-12-24 14:09
能帮忙解决一下吗?谢谢!!

你看过画点函数吗,他底层基本和IIC差不多了,只是把把每个字节数据来回移位进行传输的。你设置一个像素存放地址,目的地址设置到这里,DMA传输完毕之后,把这个地址中的内容通过LCD的函数写入到屏幕就可以了啊,记得中途DMA传输和花点停掉图像采集。
回复

使用道具 举报

11

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
490
金钱
490
注册时间
2017-10-29
在线时间
150 小时
发表于 2020-12-25 08:41:21 | 显示全部楼层
sunchangdong 发表于 2020-12-24 13:33
模拟的直接放到某一段RAM里?这个是指的LCD的显存吗?429内置的RAM不够用的!

429的RAM绝对够用的。。。。。。你SPI屏幕,尺寸肯定不大,SPI屏幕刷新率有限,你显示的尺寸小一点就可以了/
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2020-11-27
在线时间
32 小时
 楼主| 发表于 2020-12-25 10:21:12 | 显示全部楼层
繁星之下 发表于 2020-12-25 08:41
429的RAM绝对够用的。。。。。。你SPI屏幕,尺寸肯定不大,SPI屏幕刷新率有限,你显示的尺寸小一点就可以 ...

你的意思是使用内部RAM来存储摄像头采集的数据吧?我的意思是能不能使用LCD的显存来存储这些数据呢?这样不占用内部RAM的空间!LCD刚好可以存一帧多一点的数据的!
回复

使用道具 举报

11

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
490
金钱
490
注册时间
2017-10-29
在线时间
150 小时
发表于 2020-12-25 13:21:50 | 显示全部楼层
sunchangdong 发表于 2020-12-25 10:21
你的意思是使用内部RAM来存储摄像头采集的数据吧?我的意思是能不能使用LCD的显存来存储这些数据呢?这样 ...

摄像头采集的数据在DCMI寄存器,你SPI还是模拟的,模拟SPI根本没有数据寄存器,你还没搞清楚数据走向,DCMI寄存器->DMA搬运->目的寄存器。现在的问题是你的目的寄存器DMA无法直接访问,你让他怎么把数据搬运到哪里。摄像头是有行同步和场同步的,不借助这两个同步你怎么确定采集完毕,没采集完毕就让DMA搬运?

采集完毕DMA把数据搬运到哪里?显存地址只能通过模拟SPI访问,通路只能是
DCMI寄存器->DMA搬运->SPI寄存器->显存
你的SPI又没有寄存器,你不得开辟RAM放数据?

回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2020-11-27
在线时间
32 小时
 楼主| 发表于 2020-12-25 13:40:03 | 显示全部楼层
繁星之下 发表于 2020-12-25 13:21
摄像头采集的数据在DCMI寄存器,你SPI还是模拟的,模拟SPI根本没有数据寄存器,你还没搞清楚数据走向,DC ...

嗯嗯!就是说我现在只能通过429的内置RAM或外扩SDRAM来存储采集的摄像头的数据了?因为只有这样才能使用DMA来搬运数据?因为这样目标地址才是确定的?才有办法存储数据了?
因为LCD的显存DMA不能直接访问,所以无法使用它来存储采集的数据了?我的理解对不对?
回复

使用道具 举报

11

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
490
金钱
490
注册时间
2017-10-29
在线时间
150 小时
发表于 2020-12-25 14:30:09 | 显示全部楼层
sunchangdong 发表于 2020-12-25 13:40
嗯嗯!就是说我现在只能通过429的内置RAM或外扩SDRAM来存储采集的摄像头的数据了?因为只有这样才能使用D ...

是的,你要是硬件SPI,直接目的地址就是硬件的SPI的数据寄存器了,搬运完毕触发SPI数据发送,发送完毕更新LCD显存,但现在你是模拟SPI
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2020-11-27
在线时间
32 小时
 楼主| 发表于 2020-12-25 14:49:28 | 显示全部楼层
繁星之下 发表于 2020-12-25 14:30
是的,你要是硬件SPI,直接目的地址就是硬件的SPI的数据寄存器了,搬运完毕触发SPI数据发送,发送完毕更 ...

是硬件SPI的!我用的是带电路板的屏!这个处理起来就更方便了应该!谢谢你的回复哈!多谢多谢!!
回复

使用道具 举报

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2248
金钱
2248
注册时间
2019-8-7
在线时间
364 小时
发表于 2020-12-28 15:13:54 | 显示全部楼层
我是直接把LCD屏用FMC驱动的,然后直接用DMA搬运到对应的写数据地址里去,不过屏幕得打开SRAM传输
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-3-1 06:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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