ART-Pi评测 H7 RGB屏幕的显示驱动LTDC+SDRAM
本帖最后由 BinWin 于 2021-7-4 19:59 编辑<p> H7系列的单片机有专用于显示的外设,并且配备了2D加速,即Chrome-ART,直接点就是一个LTDC专享的DMA通道,可以有效降低CPU使用率,从而提高整体效率。ART-Pi的核心 是STM32H750XB,除了内部Flash只有128k,其余高级外设也没有缺少。板子还配置了SDRAM,16位宽不能发挥最高性能,但容量有32MB,这也是挺实在的。下面就利于板载硬件来点亮RGB的屏幕。</p>
<p>1、第一步,调试和测试内存。主要两点,一是对应手册的硬件属性,二是IO引脚,时钟这些配置,解决好这些,基本都可以跑通了。这里借鉴大佬们的经验测试了下硬件性能,如下图</p>
<p><span style="font-size:11.0pt"><span lang="en-US" style="font-family:Calibri">2</span><span lang="zh-CN" style="font-family:"Microsoft YaHei"">、第二点,</span><span lang="en-US" style="font-family:Calibri">LTDC</span><span lang="en-US" style="font-family:"Microsoft YaHei"">的配置</span><span lang="zh-CN" style="font-family:"Microsoft YaHei"">,用</span><span lang="en-US" style="font-family:Calibri">CubeMX</span><span lang="en-US" style="font-family:"Microsoft YaHei"">的话记得勾选</span><span lang="en-US" style="font-family:Calibri">DMA2D</span><span lang="zh-CN" style="font-family:"Microsoft YaHei"">。</span><span lang="en-US" style="font-family:Calibri">ART-Pi</span><span lang="en-US" style="font-family:"Microsoft YaHei"">的引脚有很多都做了功能映射</span><span lang="zh-CN" style="font-family:"Microsoft YaHei"">,一定要核对清楚。实际应用的时候配好</span><span lang="en-US" style="font-family:Calibri">DMA2D</span><span lang="en-US" style="font-family:"Microsoft YaHei"">后将显自动搬动显示数据从</span><span lang="en-US" style="font-family:Calibri">SDRAM</span><span lang="en-US" style="font-family:"Microsoft YaHei"">到屏幕</span><span lang="zh-CN" style="font-family:"Microsoft YaHei"">,只需要刷新内存数据就可以了。这里使用的是</span><span lang="en-US" style="font-family:Calibri">7</span><span lang="en-US" style="font-family:"Microsoft YaHei"">寸</span><span lang="en-US" style="font-family:Calibri">1024*600</span><span lang="en-US" style="font-family:"Microsoft YaHei"">的屏幕</span><span lang="zh-CN" style="font-family:"Microsoft YaHei"">,所以有必要使用外部内存来辅助显示。</span><span lang="en-US" style="font-family:Calibri">LTDC</span><span lang="en-US" style="font-family:"Microsoft YaHei"">的配置要对照手册把时序相关的几项参数搞对</span><span lang="zh-CN" style="font-family:"Microsoft YaHei"">,公式如图这样。</span></span></p>
<p></p>
<p>结合手册中是这样写的</p>
<p></p>
<p><span style="font-size:11.0pt"><span style="font-family:"Microsoft YaHei"">3、 外设配好后,我们再来引用大佬们封装好的DMA接口函数来进行显示测试。第一次发现屏幕画面有些抖动,估计是LTDC时</span></span></p>
<p><span style="font-size:11.0pt"><span style="font-family:"Microsoft YaHei"">钟低于推荐值,同时把GPIO的时钟也提高。然后测试画面稳定多了,测试效果如下</span></span></p>
<p></p>
<p>4、LTDC移植阶段可以通过背景色设置来验证时许合适与否</p>
<p><span style="font-size:11.0pt"><span style="font-family:"Microsoft YaHei""> 比如显示蓝色</span></span></p>
<pre>
<code class="language-cpp">hltdc_F.Init.Backcolor.Blue = 0xff;
hltdc_F.Init.Backcolor.Green = 0;
hltdc_F.Init.Backcolor.Red = 0;
While(1);</code></pre>
<p>5、以上就实现了裸驱屏幕,但是有了这个基础,就方便了进行其他GUI库的应用移植了。</p>
<p> </p>
<p>谢谢分享,期待后续哈</p>
页:
[1]