硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1178|回复: 6
收起左侧

[技术讨论] 使用SPI+DMA方式从外部SPI flash去读数据去刷TFT的FSMC接口,会出现花屏。

[复制链接]

21

主题

81

回帖

144

积分

初级会员

积分
144
发表于 2024-11-8 14:16:13 | 显示全部楼层 |阅读模式
芯片用的国民的,我是从外部SPIflash读取图片的源数据,然后直接给到TFT的8位并口上。


我测试了,如果SP+DMA读取 spiflash数据到RAM。读取数据和抓到的波形一致。运行完全正常
但是,如果我直接将DMA读取的数据给到TFT使用的XFMC的8位并口上就会出现花屏。抓了波形,发现数据会多出一个字节。

是不能直接这样操作吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-11-8 17:08:11 | 显示全部楼层
理论是没问题的,你的显示屏要做开窗处理,并且设置地址自增
回复

使用道具 举报

21

主题

81

回帖

144

积分

初级会员

积分
144
 楼主| 发表于 2024-11-14 17:32:40 | 显示全部楼层
eric2013 发表于 2024-11-8 17:08
理论是没问题的,你的显示屏要做开窗处理,并且设置地址自增

开窗肯定有开,我现在是开窗刷图片。其实就是一个开机动画,开固定大小的窗口,一直刷图片。现在是偶尔会出现花屏,刷几十张图,有一张会出现花一下。但是我测试了,如果是阻塞的方式查询dma传输完成的状态位是不会花的,使用DMA中断后偶尔会出现。我也修改了。每次显示一张图都开窗刷图,也还是会偶尔出现。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-11-15 09:23:05 | 显示全部楼层
Hzzz 发表于 2024-11-14 17:32
开窗肯定有开,我现在是开窗刷图片。其实就是一个开机动画,开固定大小的窗口,一直刷图片。现在是偶尔会 ...

这样的话,DMA中断完毕后,等待100ms,再刷新下一张,看看正常不,仅仅是测试目的。
回复

使用道具 举报

21

主题

81

回帖

144

积分

初级会员

积分
144
 楼主| 发表于 2024-11-18 09:46:49 | 显示全部楼层
eric2013 发表于 2024-11-15 09:23
这样的话,DMA中断完毕后,等待100ms,再刷新下一张,看看正常不,仅仅是测试目的。

延时5MS就正常了,这是什么问题呢
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-11-19 09:40:19 | 显示全部楼层
Hzzz 发表于 2024-11-18 09:46
延时5MS就正常了,这是什么问题呢

我怀疑存在DMA还没有传输完毕,就发起新DMA传输的问题,你看看是不是有这种情况。
回复

使用道具 举报

21

主题

81

回帖

144

积分

初级会员

积分
144
 楼主| 发表于 2024-11-19 11:00:09 | 显示全部楼层
eric2013 发表于 2024-11-19 09:40
我怀疑存在DMA还没有传输完毕,就发起新DMA传输的问题,你看看是不是有这种情况。

按照代码层面的理论来说是不会的,我是上了个FreeRTOS,每次触发刷新后会等待DMA传输完成给的信号量。有空了再查查看。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 02:46 , Processed in 0.041015 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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