STM32
直播中

张燕

7年用户 1360经验值
私信 关注
[问答]

使用STM32MP157D的DSI来驱动屏幕,会出现花屏的原因?


  • 项目使用STM32MP157D的DSI来驱动屏幕,u-boot会显示开机logo,进入内核后,会显示一个动画,现在碰到问题是,MIPI屏幕没有buffer,完全靠DSI在VIDEO MODE 模式下刷屏,从u-boot启动到内核显示动画会有一段300-500ms时间。目前存在一个瑕疵就是u-boot显示的logo到内核显示动画,这短暂时间会花屏,原因是DSI在这段时间没有刷新屏幕导致。现在解决办法是在这段时间关闭背光,让其出现短暂黑屏。

咨询想解决的问题是,能否在这段时间保持u-boot显示的logo,到内核动画无缝衔接?

回帖(1)

马占云

2024-6-3 16:33:18
要解决这个问题,可以尝试以下几种方法:

1. **优化启动流程**:尝试优化u-boot到内核的启动流程,减少这段时间的空白。这可能需要对启动脚本进行调整,以确保在u-boot和内核之间切换时,屏幕内容能够平滑过渡。

2. **使用双缓冲**:虽然目前没有使用buffer,但可以考虑实现双缓冲机制。在u-boot阶段,将logo存储在一个buffer中,然后在内核阶段,将动画存储在另一个buffer中。在切换过程中,可以先将动画buffer准备好,然后在切换到内核时立即显示动画,从而减少花屏现象。

3. **调整刷新率**:尝试调整DSI的刷新率,使其在u-boot和内核之间的切换过程中,屏幕刷新得更频繁。这可能会减少花屏现象,但需要注意刷新率的调整可能会影响屏幕的显示效果。

4. **使用过渡动画**:在u-boot显示logo和内核显示动画之间,可以设计一个过渡动画。这个过渡动画可以在u-boot阶段结束时开始播放,并在内核阶段动画开始之前结束。这样,用户在切换过程中看到的是一个平滑的过渡动画,而不是花屏。

5. **调整背光策略**:虽然目前已经尝试了关闭背光的方法,但可以尝试调整背光的开关策略。例如,在u-boot阶段结束时,逐渐降低背光亮度,然后在内核阶段动画开始时,逐渐增加背光亮度。这样,用户在切换过程中看到的是一个逐渐变暗再变亮的过程,而不是突然的黑屏。

综上所述,要实现u-boot显示logo到内核动画的无缝衔接,可以尝试优化启动流程、使用双缓冲、调整刷新率、使用过渡动画和调整背光策略等方法。具体选择哪种方法,需要根据项目的实际需求和硬件条件来决定。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分