泡椒风爪 发表于 2024-8-31 02:24

使用 DMA 传输单一颜色时屏幕颜色不正确

在配置DMA时,如果需要传输单一颜色数据,内存地址递增是否应该禁用?如果内存地址递增未禁用,是否会导致每次从不同的内存位置读取数据,进而使屏幕显示的颜色不一致?

lamanius 发表于 2025-2-8 17:24

如果希望在整个传输过程中都使用同一内存位置的数据(即单一颜色数据),那么应该禁用内存地址递增。这样,DMA将反复从同一内存地址读取数据,并将其传输到目标设备(如屏幕)。这种情况下,屏幕将显示一致的颜色。

p0gon9y 发表于 2025-2-8 18:33

一般来说如果内存地址递增未禁用,DMA将在每次传输时从下一个内存地址读取数据。这意味着,如果内存中包含不同的数据(即不同的颜色值),那么屏幕将显示不同的颜色。这可能导致屏幕显示的颜色不一致,特别是在需要显示单一颜色的场景下

suw12q 发表于 2025-2-8 19:37

即使内存地址递增未禁用,也不一定会导致每次从不同的内存位置读取数据,进而使屏幕显示的颜色不一致

liu96jp 发表于 2025-2-8 20:42

其实取决于内存中的数据布局。如果内存中连续存储的是相同的数据(即相同的颜色值),那么即使内存地址递增未禁用,屏幕也可能显示一致的颜色。但这种情况较为特殊,且在实际应用中不常见。

t1ngus4 发表于 2025-2-8 22:14

为了确保屏幕显示一致的颜色,在配置DMA传输单一颜色数据时,建议禁用内存地址递增。这样可以确保DMA始终从同一内存地址读取数据,并将其传输到目标设备

d1ng2x 发表于 2025-2-9 08:39

对于是否需要禁用内存地址递增,应根据具体的应用场景和需求来决定。在需要传输单一颜色数据的场景下,为了确保屏幕显示一致的颜色,建议禁用内存地址递增。

zhizia4f 发表于 2025-2-9 11:20

单一颜色不正确?是不是数据传输错误了

q1ngt12 发表于 2025-2-9 13:05

一般DMA配置的问题吧,可能数据错了就这样了

w2nme1ai7 发表于 2025-2-9 14:09

我觉得应该禁用吧,你可以试试的

ex7s4 发表于 2025-2-9 16:15

我觉得禁用应该问题不大吧,不是可以调试吗,试试呗

地瓜patch 发表于 2025-2-27 12:22

问题好复杂,没理解
页: [1]
查看完整版本: 使用 DMA 传输单一颜色时屏幕颜色不正确