前言
问题:
假设320*240的rgb565屏幕,320*240*2=153600,内存已经150K了,而很多低端单片机接口速度虽然勉强能用,但内存只有20K/8K,整屏的显存是绝对放不下的,只刷一部分都占很多内存,低端单片机刷彩屏都是写哪刷哪静态刷新的吗?这种场合比较合适的解决方法是什么?外挂ram吗?
很多m0 m3 m4的单片机内存都很小,该如何解决呢?
一、for循环刷新
静态刷新是个办法;
如果屏的内容可读取,也可将屏当作显存.
我常用的方法是:
1.减少颜色位数,比如将其当作单色屏,一个像素只占一位,那就只需320*240/8=9600字节的显存.
2.以时间换空间:
把整屏分为N个小屏,显存就只需要320*240*2/N,然后写个for循环:
for(i=0;i<N;i++)
{
设置第i个小屏的矩形区域;
绘图;
显存发送到屏;
}
二、在显示屏上花心思
1.具体要看想设计的有多花了,否则除了几个ICON占空间外,其他的如背景前景都可以采用拼图,而且采用ST7789这样控制模组的LCD都不需要经常刷新,只需要视窗内容有变化的时候才会局部刷新
2.有一种叫做MCU屏,屏幕的主控芯片是自带显存的。另外一种叫做RGB屏,如你所说的需要额外的显存。文章来源:https://www.toymoban.com/news/detail-802947.html
3.SPI或8080接口的小尺寸液晶屏,屏幕自带了显示控制器,显存位于显示控制器中,简单显示的话,无需MCU再实现一个显存。文章来源地址https://www.toymoban.com/news/detail-802947.html
到了这里,关于低端单片机彩色屏幕的内存占用疑惑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!