BeHappy 发表于 2025-1-25 12:05:03

开启SPI-DMA传送后,屏幕无显示 | 降速已解决

<h2>实验环境</h2>
<p>mcu: 8051U, 12MHz</p>
<p>屏幕驱动IC: ST7789, 240<strong>320</strong>RGB</p>
<h2>实验目的</h2>
<p>开启SPI-DMA功能,把在XDATA段缓存的数据传送给SPI接口的屏幕</p>
<h2>问题描述</h2>
<p>想了一宿没睡好,问题出在下面这段代码:</p>
<pre><code>SPIWRBUS:
        CLR                SS
    SETB    SPIBUSY
        MOV                SPDAT, A
        JB      SPIBUSY, $
;        SETB        SS
        RET
</code></pre>
<p>问题出在上述代码段第6行,注释掉之后,就可以显示出SPI-DMA传输的数据。如果不,SPI-DMA正常发生中断,就是屏幕不显示数据。但是不开启SPI-DMA功能的话,哎,即使不注掉第6行也没什么问题,显示正常。</p>
<p>下面这段是关于,开启SPI-DMA功能时对SS针脚的处理代码:</p>
<pre><code>MOV                A, #03H
MOVH                DR28, #WORD2 DMA_SPI_CFG2
MOV                WR30, #WORD0 DMA_SPI_CFG2
MOV                @DR28, R11
</code></pre>

BeHappy 发表于 2025-1-25 13:50:21

<p>经过各种组合式的修改,将频率能解决</p>
页: [1]
查看完整版本: 开启SPI-DMA传送后,屏幕无显示 | 降速已解决