搜索
bottom↓
回复: 19

请教--ILI9341刷屏速度慢、、

[复制链接]

出0入0汤圆

发表于 2017-7-20 13:53:11 | 显示全部楼层 |阅读模式
本帖最后由 信仰在空中飘扬 于 2017-7-20 16:53 编辑

我用STM32F103RCT6单片机模拟8位方式驱动ILI9341接口显示屏刷屏速度很慢,测试发现要600ms才能刷完一整屏(240*320的);但是我看别人的一个屏用的STM32F030C8T6 16位方式驱动的(不知道是不是9341接口)那速度超快的,几乎看不到延时!这是为什么呢?我程序问题还是9341就是这么慢?请大神指点一二!



结贴:感谢各位的帮助,把IO的操作改成寄存器方式确实快很多!以后底层函数还是多用寄存器来好了、、、

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出870入263汤圆

发表于 2017-7-20 14:05:13 | 显示全部楼层
正如PC显卡,驱动程序对性能影响很大;你的显示驱动是每个像素传输作一次XY设定,还是一块区域的像素传输作一次XY设定?这个是提高性能的关键所在。

出0入0汤圆

发表于 2017-7-20 14:07:09 | 显示全部楼层
"模拟8位方式驱动" 改成FSMC 16bit

出0入362汤圆

发表于 2017-7-20 14:28:42 | 显示全部楼层
cheungman 发表于 2017-7-20 14:07
"模拟8位方式驱动" 改成FSMC 16bit

F030可没有FSMC,应该就是用GPIO模拟总线时序实现的。
我手里几块TJC的HMI屏都是用的F030。。。

出0入0汤圆

发表于 2017-7-20 14:48:35 | 显示全部楼层
楼主自己写的程序问题而已。我用f030写模拟16bit总线的速度并不比f103的FSMC速度慢。(刷单色)

出0入0汤圆

 楼主| 发表于 2017-7-20 15:42:39 | 显示全部楼层
tomzbj 发表于 2017-7-20 14:28
F030可没有FSMC,应该就是用GPIO模拟总线时序实现的。
我手里几块TJC的HMI屏都是用的F030。。。 ...

是的、、我就是看HMI屏 16方式驱动的速度超级快,才感觉自己的速度像蜗牛!两者相比好比高铁跟火车,但是问题又不知道在哪里

出0入0汤圆

 楼主| 发表于 2017-7-20 15:45:17 | 显示全部楼层
armstrong 发表于 2017-7-20 14:05
正如PC显卡,驱动程序对性能影响很大;你的显示驱动是每个像素传输作一次XY设定,还是一块区域的像素传输作 ...

我直接用的区域刷屏显示,然后每刷完一屏让一个IO翻转一次,测试时间居然要600ms,我也是醉了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-7-20 15:49:00 | 显示全部楼层
chaled 发表于 2017-7-20 14:48
楼主自己写的程序问题而已。我用f030写模拟16bit总线的速度并不比f103的FSMC速度慢。(刷单色) ...

你看我的驱动和刷屏函数,我觉得已经是够简单了,没办法提升速度了

出0入0汤圆

发表于 2017-7-20 15:52:58 | 显示全部楼层
IO直接操作,不要用库

出0入0汤圆

发表于 2017-7-20 15:57:36 | 显示全部楼层
信仰在空中飘扬 发表于 2017-7-20 15:45
我直接用的区域刷屏显示,然后每刷完一屏让一个IO翻转一次,测试时间居然要600ms,我也是醉了 ...

可能是写数据的函数调用太占时间了,可以把操作的部分嵌入进来.

出870入263汤圆

发表于 2017-7-20 16:01:22 | 显示全部楼层
楼主,LCD_wr()这类函数不知你如何实现的,千万别用库函数来实现!这些函数的调用频次太高,每个函数多几条指令就能使性能指数级下降。应该直接写BSRR或者BRR寄存器来输出高低电平。

出0入0汤圆

 楼主| 发表于 2017-7-20 16:55:35 | 显示全部楼层
armstrong 发表于 2017-7-20 16:01
楼主,LCD_wr()这类函数不知你如何实现的,千万别用库函数来实现!这些函数的调用频次太高,每个函数多几条 ...

谢谢、、换成寄存器速度快多了、、

出0入10汤圆

发表于 2017-7-20 16:57:01 来自手机 | 显示全部楼层
你这比STC51还慢,看看汇编怎么操作的

出0入362汤圆

发表于 2017-7-20 17:52:19 | 显示全部楼层
信仰在空中飘扬 发表于 2017-7-20 16:55
谢谢、、换成寄存器速度快多了、、

以及可以在循环外面设置两个变量:
register unsigned char hi = bkcolor >> 8, lo = bkcolor & 0xff;
然后循环里面用这俩
不过也许编译器已经做了类似的工作了。

出0入442汤圆

发表于 2017-7-20 18:36:49 来自手机 | 显示全部楼层
tomzbj 发表于 2017-7-20 17:52
以及可以在循环外面设置两个变量:
register unsigned char hi = bkcolor >> 8, lo = bkcolor & 0xff;
然 ...

那还不如直接字节寻址,一点时间都不用了。

出0入0汤圆

 楼主| 发表于 2017-7-20 19:11:57 | 显示全部楼层
tomzbj 发表于 2017-7-20 14:28
F030可没有FSMC,应该就是用GPIO模拟总线时序实现的。
我手里几块TJC的HMI屏都是用的F030。。。 ...

大哥、、我再请教个问题、、HMI屏它跑的是UC GUI吗?因为我觉得030跑GUI应该很慢的啊、、、

出0入0汤圆

发表于 2017-7-20 19:35:03 | 显示全部楼层
1寄存器操作IO读写
2开最高级别优化

出0入0汤圆

发表于 2017-7-20 19:54:38 | 显示全部楼层
需要液晶驱动器支持,然后用区域刷新功能

出0入362汤圆

发表于 2017-7-20 20:56:28 | 显示全部楼层
信仰在空中飘扬 发表于 2017-7-20 19:11
大哥、、我再请教个问题、、HMI屏它跑的是UC GUI吗?因为我觉得030跑GUI应该很慢的啊、、、 ...

应该是他们自制的系统吧,f030也就64k rom, 8k ram
还要留一些ram给用户程序呢。。。

出0入0汤圆

发表于 2017-7-21 09:35:13 | 显示全部楼层
楼主如果不是专业卖hui屏的还是不要用这种低端的mcu,优化太耗时间,省的钱几千块屏都不够你的人工
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-21 23:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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