找回密码
 立即注册
查看: 260|回复: 1

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

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:172
  • 最近打卡:2025-05-01 10:06:01

44

主题

124

回帖

1437

积分

金牌会员

积分
1437
发表于 2025-1-25 12:05:03 | 显示全部楼层 |阅读模式

实验环境

mcu: 8051U, 12MHz

屏幕驱动IC: ST7789, 240320RGB

实验目的

开启SPI-DMA功能,把在XDATA段缓存的数据传送给SPI接口的屏幕

问题描述

想了一宿没睡好,问题出在下面这段代码:

SPIWRBUS:
	CLR		SS
    SETB    SPIBUSY
	MOV		SPDAT, A
	JB      SPIBUSY, $
;	SETB	SS
	RET

问题出在上述代码段第6行,注释掉之后,就可以显示出SPI-DMA传输的数据。如果不,SPI-DMA正常发生中断,就是屏幕不显示数据。但是不开启SPI-DMA功能的话,哎,即使不注掉第6行也没什么问题,显示正常。

下面这段是关于,开启SPI-DMA功能时对SS针脚的处理代码:

MOV		A, #03H
MOVH	        DR28, #WORD2 DMA_SPI_CFG2
MOV		WR30, #WORD0 DMA_SPI_CFG2
MOV		@DR28, R11
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:172
  • 最近打卡:2025-05-01 10:06:01

44

主题

124

回帖

1437

积分

金牌会员

积分
1437
发表于 2025-1-25 13:50:21 | 显示全部楼层

经过各种组合式的修改,将频率能解决

回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:32 , Processed in 0.116174 second(s), 53 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表