关于液晶刷新速度优化方法

开发环境:keil5
处理器:stm32f103Rct6
打算用f1系列做一个摄像头拍摄的一个功能,但是用原来厂家给的液晶显示底层发现刷新速度实在是太慢了,液晶是240x240像素,RGB565格式显示格式。原来底层显示一幅240x240图像需要1秒多的时间无奈 之下只好修改底层。
源代码如下

void LCD_Writ_Bus(u8 dat)
{ u8 i;
for(i=0;i<8;i++)
{     LCD_SCLK_Clr();if(dat&0x80){ LCD_MOSI_Set();}else{LCD_MOSI_Clr();}LCD_SCLK_Set();dat<<=1;
}
}

可以看出这是一个将8位数据一位一位写入液晶的底层,这里LCD_SCLK_Clr()和LCD_MOSI_Clr()定义如下图所示,可以看出这里调用了stm32f10x_gpio.h里面的库函数,从而再次调用底层寄存器


这里可以进行第一步优化修改,我们直接操作寄存器从而避开调用库函数,修改如下

void LCD_Writ_Bus(u8 dat)
{ u8 i;for(i=0;i<8;i++){     LCD_GPIO->BRR = SCLK;if(dat&0x80){LCD_GPIO->BSRR = MOSI;}else{LCD_GPIO->BRR = MOSI;}LCD_GPIO->BSRR = SCLK;dat<<=1;}
}

这里的LCD_GPIO、MOSI 和SCLK定义在这

确定读写端口既可以操作寄存器,优化后测试速度达到每秒两张图片左右。
然后继续思考,是不是已经优化到最佳了吗?答案当然是还没有,这还有一个for循环还有自加呢,方法当然是将for循环八次依次拆开,节省变量自加的时间,和for循环判断小于8的时间。这里有人可能会说,自加时间不多吧,字加一次时间是不多,我们来算一下,我们显示的是240240像素的图片,一个像素点是16位数据,总共有240x240x16 = 921600位数据每一位都自加一次,大约92万次,这次数是不是就不一样了?还有判断呢!
现在再次说明一下优化方法,代码如下

// An highlighted blockLCD_GPIO->BRR = SCLK;if(dat&0x80){LCD_GPIO->BSRR = MOSI;}else{LCD_GPIO->BRR = MOSI;}LCD_GPIO->BSRR = SCLK;if(dat&0x40){LCD_GPIO->BSRR = MOSI;}else{LCD_GPIO->BRR = MOSI;}LCD_GPIO->BSRR = SCLK;

因为拆开写比较长这里就列了写两位,具体不想复制就下载一下文件吧
经过测试最终刷新速度可以达到每秒3幅图片左右。
最后结论:为了提升刷新速度,速度虽然快了,但是代码就变复杂了,具体选择哪种,根据实际需求吧,另外还有更好的优化方案欢迎指出,感谢大家观看~

关于液晶刷新速度优化方法相关推荐

  1. Win8怎么加快桌面图标刷新速度?提高图标刷新速度的方法解析

    本文来自BX教程网www.benxitj.com:整理编辑 - 原文出处 www.benxitj.com/Article/?11804/62.html 转载注明 window8 很多时候由于各种内存或 ...

  2. PC电脑系统上投屏、投影的鼠标相应速度优化方法

    电脑系统上录屏或者投屏时将获取的屏幕图像数据进行实时远程视频交互或投影演示时,演讲者操作电脑会感到投影显示的鼠标位置与自己使用的电脑显示鼠标位置有一段时间的滞后,主要原因是视频进行运动图像压缩(通常采 ...

  3. mysql无序id怎么优化limit_MYSQL分页limit速度太慢优化方法

    原标题:MYSQL分页limit速度太慢优化方法 在mysql中limit可以实现快速分页,但是如果数据到了几百万时我们的limit必须优化才能有效的合理的实现分页了,否则可能卡死你的服务器哦. 当一 ...

  4. 【Android优化篇】提升Activity加载速度的方法

    文章转自:http://www.jianshu.com/p/2007ca0290d3 作者: CoderFan 前言 这个也是我面试遇到的问题,当时只回答了一种情况,异步加载数据,没想到别的方式,回来 ...

  5. win7计算机怎么优化驱动器,Win7优化电脑加快关机速度的方法技巧

    原标题:Win7优化电脑加快关机速度的方法技巧 在使用Win7系统的过程中,很多用户都遇到过关机速度慢的问题,怎么办呢?电脑的关机速度慢和开机速度慢其实是一个道理,一般是由于磁盘.电源等问题造成的.这 ...

  6. 网站打开速度慢的原因,排查方法及优化方法(大全)

    如果你的网站打开速度过慢,而你又不知道该如何解决,那么这篇文章是非看不可了.手把手的教你如何排查网站打开慢的原因,以及优化方法. 排查网站打开速度慢的原因: 1网站服务器速度或租用空间所在服务器速度 ...

  7. 怎么使计算机软件运行快w10,w10怎么优化开机速度_w10优化开机速度的方法

    虽然说Windows10系统的开机速度算不上慢,但大多数的用户都追求极速的效果,所以近日就有使用win10旗舰版系统的网友问小编w10怎么优化开机速度?那么小编就为大家整理了关于w10优化开机速度的方 ...

  8. keras里predict函数预测速度慢的优化方法

    需求分析:在keras模型中,使用predict函数对1.9kw个样本进行预测,但是速度较慢 (1)tensorflow版本: import tensorflow as tf from tensorf ...

  9. mysql limit 分页 优化_MYSQL分页limit速度太慢优化方法

    在mysql中limit可以实现快速分页,但是如果数据到了几百万时我们的limit必须优化才能有效的合理的实现分页了,否则可能卡死你的服务器哦. 当一个表数据有几百万的数据的时候成了问题! 如 * f ...

最新文章

  1. 【Python3.6+Django2.0+Xadmin2.0系列教程之一(入门篇-上)】环境搭建及项目创建
  2. 慢SQL,压垮团队的最后一根稻草No.92
  3. makefile .phony targets
  4. 量化交易系统综述——互联网金融之二
  5. 数据中心节能制冷---冷却塔帮忙
  6. Android笔记 xml补间动画
  7. dmb: 数据库监控及灾备系统(for mysql)_MySQL企业级数据库灾备(备份)系统-DMB v2.1发布...
  8. 机器学习基础算法17-决策树-鸢尾花数据集分类及决策树深度与过拟合
  9. 在微信源代码共享仿乐趣, 把你的业务微信
  10. 《如何让你爱的人爱上你》第一部分:第一印象
  11. android设计个人简历页面_Android程序员个人简历模板下载(Word格式)
  12. 刷机必备:BlackBerry ROM,桌面管理器下载
  13. 信息安全之加密域可逆信息隐藏
  14. 微信小程序day01
  15. bt linux wifi,Ubuntu安装无线网卡驱动Wifi/BT BCM4330(AP6383)
  16. 12月DB-Engines数据库排名,你猜谁会是第一?
  17. 每日一学:Python 将时间戳转换为指定格式日期
  18. TopCoder介绍
  19. 剖析微信等即时通讯常用组件(一)
  20. NL2SQL概述:一文了解NL2SQL

热门文章

  1. 计算机空格键作用,电脑空格键有哪些作用?你知道几个?
  2. 语义分割指标---MIoU详细介绍(原理及代码)
  3. “健康码”背后的腾讯C2B大练兵
  4. java-php-python-爱心公益网站设计与制作计算机毕业设计
  5. struts2 配置文件中 result的用法
  6. 调用百度地图API出现 error inflating class com.baidu.mapapi.map.mapview
  7. ArcGIS Pro添加在线遥感底图
  8. 台式电脑打开计算机很慢,台式电脑慢怎么处理_台式电脑很慢很卡的解决方法-系统城...
  9. C++/Python PAT乙级1051 复数乘法 (15分)
  10. DVB数字电视系统简介(DVB-C,DVB-S,DVB-T)