问答

汇集网友智慧,解决技术难题

21ic问答首页 - 低端单片机彩色屏幕的内存占用疑惑

单片机 彩屏 内存占用

低端单片机彩色屏幕的内存占用疑惑 赏100家园币

24kdewhite2024-01-02
假设320*240的rgb565屏幕,320*240*2=153600,内存已经150K了,而很多低端单片机接口速度虽然勉强能用,但内存只有20K/8K,整屏的显存是绝对放不下的,只刷一部分都占很多内存,低端单片机刷彩屏都是写哪刷哪静态刷新的吗?这种场合比较合适的解决方法是什么?外挂ram吗?
很多m0 m3 m4的单片机内存都很小,该如何解决呢
,,,
回答 +关注 14
20605人浏览 8人回答问题 分享 举报
8 个回答
  • 本帖最后由 LcwSwust 于 2024-1-3 15:32 编辑

    静态刷新是个办法;
    如果屏的内容可读取,也可将屏当作显存.
    我常用的方法是:
    1.减少颜色位数,比如将其当作单色屏,一个像素只占一位,那就只需320*240/8=9600字节的显存.
    2.以时间换空间:
    把整屏分为N个小屏,显存就只需要320*240*2/N,然后写个for循环:
    for(i=0;i<N;i++)
    {
      设置第i个小屏的矩形区域;
      绘图;
      显存发送到屏;
    }
  • 显示内容占用内存较多的话可以选择外挂一个FLASH,用SPI加DMA读取。速度还可以
  • 这类显示屏大多数都有窗功能指定一个小窗,然后对小窗更新就很方便了
  • 具体要看想设计的有多花了,否则除了几个ICON占空间外,其他的如背景前景都可以采用拼图,而且采用ST7789这样控制模组的LCD都不需要经常刷新,只需要视窗内容有变化的时候才会局部刷新
  • 按照正点原子的叫法,有一种叫做MCU屏,屏幕的主控芯片是自带显存的。另外一种叫做RGB屏,如你所说的需要额外的显存。
  • 多数情况不需要缓存整屏数据,哪里需要刷新就直接刷新,比如直接写字符串
  • SPI或8080接口的小尺寸液晶屏,屏幕自带了显示控制器,显存位于显示控制器中,简单显示的话,无需MCU再实现一个显存。
  • 显示啥内容?

    可学习游戏机编程

您需要登录后才可以回复 登录 | 注册