接着(一)继续
有幸把我第一条LTDC的例子在开发板上显示出来了。其实这里面主要是因为我没好好看LCD手册,没搞清楚LTDC的原理导致的。前者导致LCD始终无法显示有效颜色,后者导致我的GRAM内像素格式错误。
之前始终把LTDC和DMA2D混为一潭,认为LTDC的2层和DMA2D的2层混合是一个东西,俩必须一起用。(至少看到的很多例子都是这么做的)。后来发现LTDC本身就是一个支持2层混合的外设。与DMA2D功能上一样的,至于为什么很多例子都一起用,后续再试试。目前感觉是速度问题。
单层显示的LTDC其实很简单,用cubeMX生成好之后,就可以用了。这里要特别注意配置LTDC的那些参数,一定要按照LCD手册进行配置。否则可能就显示不出来了。给LCD分配一个GRAM,然后修改GRAM的值,就可以显示在LCD上了。后续我会把代码拿上来分享。
双层显示,需要进行混合,我还没试验成功。看教程说需要带alpha值混合。我试用的RGB888,那我开辟的GAM需要再扩四分之一,增加8bit的alpha值。