开启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>
<p>经过各种组合式的修改,将频率能解决</p>
页:
[1]