STM32H7 LTDC与DMA2D外设(五)

博主在尝试解决LTDC双缓冲导致的花屏问题时,转而使用单缓冲并配合DMA2D进行前景和背景融合。初期遇到显示问题,后来发现初始化DMA2D时选择了错误的配置,调整为适合单缓冲的设置后成功刷屏。此外,发现LTDC工作在25MHz时最稳定。博客作者总结了问题关键在于深入理解技术细节,并计划进一步发掘DMA2D的潜力,如构建GUI。
摘要由CSDN通过智能技术生成

(四)中提到一个问题,LTDC 使用双buffer,花屏问题。四处查找也没找到对应的办法,自己试了很多方式也没解决。没法子,只好使用LTDC的单buffer。

使用单buffer,看起来简单了,其实不然,我是希望保持ARGB8888格式不变,这样用int型变量正好一个像素,省去了3byte的间隔的问题。

没有双buffer,前景色和背景色的融合就需要dma2d了。此时如果还用之前的方式,我竟然失败了。没有把预期的像素显示出来。

想法很简单,一片空间,我赋值之后,用dma2d搬移到ltdc的单buffer里,然后做一下前景,背景融合而已。结果失败了……………………

利用dma2d搬移的所有东西都么有显示出来。继续找问题,继续找原因。

 

DMA2D函数用错了。初始化的时候选择的是双层dma2d,所以要用blend的dma2d,两层融合。实验后,发现又可以刷屏了。代码已上库。

https://gitee.com/guyspring/CubeMX_ArtPi

另外有个问题,ltdc频率不能太高,我试了下,25MHz比较稳,就这个了,32MHz和28Mhz都有问题,就不继续试了,后续就先用25MHz了。

 

总结一下,其实这几天的问题都很简单,除了ltedc那个双缓存的问题没解决,其它的都只是之前没理解透彻而已。下一步还是想想dma2d的用武之地才对。搞一个gui,让dma2d发挥作用才对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值