omnsvwle 发表于 2024-12-10 10:41:27

DMA-LCM显示图片不正确

<p><img src="https://www.stcaimcu.com/data/attachment/forum/202412/10/103635zlhmkldaliddak02.png" alt="386A36165A79A55C5A20C263B75B44AA.png" title="386A36165A79A55C5A20C263B75B44AA.png" /><img src="data/attachment/forum/202412/10/103616kipykbppz4lkkpn2.png" alt="B93E3705B52FAE7349AAA42045CF0A20.png" title="B93E3705B52FAE7349AAA42045CF0A20.png" /><br />
<img src="https://www.stcaimcu.com/data/attachment/forum/202412/10/103623jfgzfagdnzb2n165.png" alt="CEA1D0C40E730EA072D63655F3F43C13.png" title="CEA1D0C40E730EA072D63655F3F43C13.png" /></p>
<p>unsigned char xdata Pic_buf 缓存大小</p>
<p>代码部分已经给出</p>
<video controls="controls" src="forum.php?mod=attachment&amp;aid=71209"></video>
<p>问题是刷新的位置不是(0.0)而是屏幕下方,不清楚为什么,不使用DMA显示正常。</p>

乘风飞扬 发表于 2024-12-10 11:40:16

<p>用的是什么型号的芯片?xdata使用了多少空间?</p>
<p>另外正常显示是什么样的?你的问题描述的还不是很清楚。</p>

DebugLab 发表于 2024-12-10 11:50:42


先打开DMA并清FIFO,不要在DMA关闭状态进行任何DMA操作

DebugLab 发表于 2024-12-10 11:52:45

DebugLab 发表于 2024-12-10 11:50
先打开DMA并清FIFO,不要在DMA关闭状态进行任何DMA操作

顺序:
打开DMA并清FIFO
配置DMA
触发传输

omnsvwle 发表于 2024-12-10 13:51:02

<p>ST77898051U Xdata5600 正常显示是这样的</p>
<p><img src="data/attachment/forum/202412/10/135345wncozw9tk2c2btkf.jpg" alt="微信图片_20241210135021.jpg" title="微信图片_20241210135021.jpg" /></p>

omnsvwle 发表于 2024-12-10 13:56:02

乘风飞扬 发表于 2024-12-10 11:40
用的是什么型号的芯片?xdata使用了多少空间?
另外正常显示是什么样的?你的问题描述的还不是很清楚。
...

楼下发了正常显示的图,ST7789 8051U Xdata5600

omnsvwle 发表于 2024-12-10 14:52:37

DebugLab 发表于 2024-12-10 11:52
顺序:
打开DMA并清FIFO
配置DMA


跟这个先后顺序应该没啥关系,试验箱的程序都是先DMA_LCM_CR = 0x00;
经过测试应该是跟ST7789初始化有关,调一调X,Y偏移量?但是没有使用DMA显示又是正常的

DebugLab 发表于 2024-12-10 15:17:12

omnsvwle 发表于 2024-12-10 14:52
跟这个先后顺序应该没啥关系,试验箱的程序都是先DMA_LCM_CR = 0x00;
经过测试应该是跟ST7789初始化有关 ...

看视频是从第一行刷到最后一行的,刷新是对的,但是数据位置不对,看起来是从中间的地址开始刷,发完了又从头刷的

DebugLab 发表于 2024-12-10 15:22:03


逻辑分析仪看看LCM接口的信号
检查是否是使用DMA时意外修改了LCM的设置(ST7789内部的寄存器)
修改DMA时钟,降低速度到便于观察的速度,看看DMA先从哪个地址取数,先在屏幕的哪个位置开始刷新
检查这几个寄存器

DebugLab 发表于 2024-12-10 15:23:42

还有检查是否速度过快导致异常,通信速度过快可能会导致这种异常
页: [1] 2
查看完整版本: DMA-LCM显示图片不正确