STM32显示外置FLASH存储图片遇内存不足解决方法:将图片数组存储器中

u8 Read_data[BLOCK_SIZE];  // 图像数据缓冲区


#define BLOCK_SIZE 480  // 每块的大小,根据RAM容量和需求调整
#define LCD_WIDTH 240    // LCD屏幕宽度
#define LCD_HEIGHT 240   // LCD屏幕高度
#define FLASH_IMAGE_SIZE 115200  // 图像文件的总大小,根据实际大小设置



void DisplayImageChunks(u32 startOffset, u32 endOffset) {
    u32 y = 0;  // 初始化y坐标
    u32 scrollStep = 1;  // 初始化y坐标的滚动步长,根据需要调整
        while (1) {

            // 设置LCD显示区域
            LCD_Address_Set(0, y, LCD_WIDTH, LCD_HEIGHT);

            // 逐步读取并显示当前块
            W25QXX_Read(Read_data, startOffset, BLOCK_SIZE);  // 从Flash内存读取数据
            for (u32 i = 0; i < BLOCK_SIZE; i++) {
                u8 data = Read_data[i];
                LCD_WR_DATA8(data);
            }

            // 更新块的起始位置
            startOffset += BLOCK_SIZE;

            // 增加y坐标以滚动显示
            y += scrollStep;

            // 如果y坐标越界,重置y坐标
            if (y >= LCD_HEIGHT) {
                y = 0;
							break;
            }

            // 在每个块之间添加延时,以稳定滚动显示
            //HAL_Delay(100);  // 根据需要调整延时时长
        }
    }

这里数组的大小定义为了480,scrollStep的值为 数组大小(480)/ 2 /屏幕宽度(240)。注意scrollStep要为整数,数组大小和scrollStep根据实际调整。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper
  • 总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题
  • 1、什么是运维?

    2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

    3、现在给你三百台服务器,你怎么对他们进行管理?

    4、简述raid0 raid1raid5二种工作模式的工作原理及特点

    5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

    6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

    7、Tomcat和Resin有什么区别,工作中你怎么选择?

    8、什么是中间件?什么是jdk?

    9、讲述一下Tomcat8005、8009、8080三个端口的含义?

    10、什么叫CDN?

    11、什么叫网站灰度发布?

    12、简述DNS进行域名解析的过程?

    13、RabbitMQ是什么东西?

    14、讲一下Keepalived的工作原理?

    15、讲述一下LVS三种模式的工作过程?

    16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

    17、如何重置mysql root密码?

    一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
    img

    一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
    [外链图片转存中…(img-kXHfqZA4-1713024163096)]

    作者:普通网友

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32显示外置FLASH存储图片遇内存不足解决方法:将图片数组存储器中

    发表回复