OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8724|回复: 19

液晶屏刷图慢的主要原因是什么?求原子哥给点建议!

[复制链接]

15

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-7-1
在线时间
28 小时
发表于 2014-8-13 10:58:58 | 显示全部楼层 |阅读模式
5金钱
STM32F103VET6+3.5寸液晶屏(480*320,NT35310驱动),液晶屏是FSMC接口,SD卡是SDIO接口,文件系统FATFS。移植了原子哥的实验42,但是显示BMP图片的时候明显可以看到他从下到上刷出来的。我想要这种效果:一启动程序整张图就完全显示在液晶屏上了。 如果要达到这样是不是只要加个外部SRAM (比如IS62WV51216)就可以啊? 原子哥给点建议啊!

最佳答案

查看完整内容[请看2#楼]

给你一个最低成本的方案: SPI FLASH-->16位 DMA-->LCD. 先将图片等数据解码,直接写入SPI FLASH,然后启动的时候,就直接从SPI FLASH 的地址DMA到LCD,这样速度可以达到你的要求.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-13 10:58:59 | 显示全部楼层
给你一个最低成本的方案:
SPI FLASH-->16位 DMA-->LCD.
先将图片等数据解码,直接写入SPI FLASH,然后启动的时候,就直接从SPI FLASH 的地址DMA到LCD,这样速度可以达到你的要求.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

8

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
357
金钱
357
注册时间
2012-4-18
在线时间
76 小时
发表于 2014-8-13 11:04:26 | 显示全部楼层
把单片机换成429,应该可以!
回复

使用道具 举报

15

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-7-1
在线时间
28 小时
 楼主| 发表于 2014-8-13 11:18:57 | 显示全部楼层
回复【2楼】guer:
---------------------------------
哥,换单片机就比较麻烦了,况且本人还没有学过429。
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-8-13 12:35:01 | 显示全部楼层
除了换主控之外好像还真没办法
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

5

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2012-8-10
在线时间
40 小时
发表于 2014-8-13 13:49:56 | 显示全部楼层
记不太清了,原子哥的的综合实验好像是用的DMA刷图的吧,刷新一个整屏的图片也不会有明显的很慢的视觉效果。
回复

使用道具 举报

15

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-7-1
在线时间
28 小时
 楼主| 发表于 2014-8-13 14:07:12 | 显示全部楼层
回复【4楼】Badu_Space:
---------------------------------
哥,加个外部SRAM不能搞定么? 或者搞个图片解码芯片?换CPU真的太麻烦了,我其他的电路又要重新搞!
回复

使用道具 举报

15

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-7-1
在线时间
28 小时
 楼主| 发表于 2014-8-13 14:08:27 | 显示全部楼层
回复【5楼】hwl1023:
---------------------------------
应该是将SD卡中的图通过DMA传送吧?
回复

使用道具 举报

15

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-7-1
在线时间
28 小时
 楼主| 发表于 2014-8-13 14:50:12 | 显示全部楼层
回复【4楼】Badu_Space:
---------------------------------
哥,我把图片放到FLASH(W25Q64)中效果会不会好点呢?
回复

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
发表于 2014-8-13 14:57:22 | 显示全部楼层
http://www.openedv.com/posts/list/36030.htm#top
这个刷着不卡哦
回复

使用道具 举报

15

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-7-1
在线时间
28 小时
 楼主| 发表于 2014-8-13 15:09:23 | 显示全部楼层
回复【9楼】solo:
-------------------------------
八神 ,你的图片刷的时候是一整张就能迅速显示出来么?肉眼看不清他是在刷的
回复

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
发表于 2014-8-14 11:52:33 | 显示全部楼层
回复【10楼】zengan007:
---------------------------------
测试500ms不间断刷新不闪烁,每次刷整屏
回复

使用道具 举报

15

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-7-1
在线时间
28 小时
 楼主| 发表于 2014-10-9 16:08:42 | 显示全部楼层
回复【11楼】正点原子:
---------------------------------
一张480*320高清的图片用Image2LCD解码之后的C文件的数组有307208个字节,这个如何写入到W25Q64中去呢?希望原子哥不吝赐教!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-9 18:51:38 | 显示全部楼层
回复【13楼】zengan007:
---------------------------------
1,通过SD卡拷贝到W25Qxx
2,通过串口,写协议(XCOM支持),发送到单片机,再写入W25Qxx
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

15

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-7-1
在线时间
28 小时
 楼主| 发表于 2014-10-10 09:06:32 | 显示全部楼层
原子哥,W25Q64不是64M么?但是我看数据手册上说


这样一算就只有8M啊? 

既然他的容量有32768*256,那为什么你的函数里面写入的字节数限制在65536呢?


回复

使用道具 举报

15

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-7-1
在线时间
28 小时
 楼主| 发表于 2014-10-10 09:09:53 | 显示全部楼层
回复【14楼】正点原子:
---------------------------------
额,点回复加不了图的!
回复

使用道具 举报

15

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-7-1
在线时间
28 小时
 楼主| 发表于 2014-11-11 22:26:27 | 显示全部楼层
回复【11楼】正点原子:
---------------------------------
原子哥,好像不能将W25Q64的数据直接用DMA传输到LCD->RAM吧?

首先:W25Q64里面都是8位字节存储和读写的,而LCD->RAM是16位的,传过去显示不了啊。

其次:如果用DMA进行传输,目的地址是LCD->RAM,而源地址呢?是SPI->DR还是W25Q64的内存地址?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-11 22:41:44 | 显示全部楼层
回复【17楼】zengan007:
---------------------------------
可以的
W25Q64可以连续读,你配置SPI数据长度为16位,那么就可以完成DMA传输了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

15

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-7-1
在线时间
28 小时
 楼主| 发表于 2014-11-11 22:53:14 | 显示全部楼层
回复【18楼】正点原子:
---------------------------------
我是将BIN文件刷到W25Q64的,每次从W25Q64读出来的数据都要经过
u16 image_getcolor1(u8 *str)
{
u16 color;
color=*str++;
color|=((u16)*str)<<8;

return color;
}这个函数去整合才放到LCD-RAM中去的,而且前面读的数据是低8位啊。如果直接SPI到LCD-RAM,那这个如何转换呢?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-12 23:28:25 | 显示全部楼层
回复【19楼】zengan007:
---------------------------------
你写的时候可以控制嘛。。。。
高低位在前的问题你写的时候就处理好就是了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 04:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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