当前位置: 首页 > news >正文

瑞佑液晶控制芯片RA6807系列介绍 (三)软件代码详解 Part.10(让PNG图片动起来)完结篇

RA6807是RA8876M的缩小版,具备RA8876M的所有功能,只将MCU控制接口进行缩减,仅保留SPI-3和I2C接口,其它功能基本相同。

该芯片最大可控制854x600的分辨率,内建64Mbits显存,多个图层,使用起来相当灵活!

继续讲解软件代码,我们使用SPI-3进行演示。参考代码请使用PC端浏览器访问本贴,在标题下方找到下载链接。

10. 让PNG图片动起来

上篇已经解释了如何显示PNG图片,接下来我们要做一个有趣的效果!让PNG图片动起来!先看实际效果:
在这里插入图片描述

实现代码:

	unsigned short n,x,y,dir_x,dir_y;//显示PNG只能在16位色深方可Select_Main_Window_16bpp();		//[10h]Set main window color depthMemory_16bpp_Mode();			//[5Eh]Set active memory color depthDMA_24bit(CS1,0,0,480*0,800,480,BINARY_INFO[5].img_width,BINARY_INFO[5].start_addr);	//Layer0:主画面DMA_24bit(CS1,0,0,480*1,800,480,BINARY_INFO[5].img_width,BINARY_INFO[5].start_addr);	//Layer1:主画面组合PNG用DMA_24bit(CS1,0,0,480*2,800,480,BINARY_INFO[5].img_width,BINARY_INFO[5].start_addr);	//Layer2:主画面备份用DMA_24bit(CS1,0,0,480*3,400,100,BINARY_INFO[6].img_width,BINARY_INFO[6].start_addr);	//Layer3:读取PNG(ARGB:4444)数据放到该图层x=300;y=300;			dir_x=1;	//PNG移动方向:0:递减,1:递进dir_y=1;	//PNG移动方向:0:递减,1:递进for(n=0;n<400;n++){BTE_Alpha_Blending_Pixel_PNG_16bpp(Layer1,canvas_image_width,x,y,Layer3,canvas_image_width,0,0,Layer1,canvas_image_width,x,y,400,100);	//将PNG数据延展为图片,贴到Layer1上BTE_Memory_Copy(Layer1,canvas_image_width,0,0,0,canvas_image_width,0,0,Layer0,canvas_image_width,0,0,0x0C,800,480);											//将Layer1复制到Layer0,主画面叠加了PNG图片后复制BTE_Memory_Copy(Layer2,canvas_image_width,0,0,0,canvas_image_width,0,0,Layer1,canvas_image_width,0,0,0x0C,800,480);											//将Layer2复制到Layer1,恢复底图//x向递增和递减if(dir_x==1 && x<800-400){x++;if(x==800-400-1)	dir_x=0;}else if(dir_x==0 && x>0){x--;if(x==0)	dir_x=1;}		//y向递增和递减if(dir_y==1 && y<480-100){y++;if(y==480-100-1)	dir_y=0;}else if(dir_y==0 && y>0){y--;if(y==0)	dir_y=1;}}	

上例中,我们将显存规划出来Layer0~3共4个图层,这几个层用宏定义了相应地址了,范例的代码在UserDef.h中:

/* RA6807 图层定义 16位色 */
#define Layer0  384000*2*0		//图层0地址(canvas_image_width*LCD_Height*16/8)
#define Layer1  384000*2*1		//图层1地址
#define Layer2  384000*2*2		//图层2地址
#define Layer3  384000*2*3		//图层3地址
#define Layer4  384000*2*4		//图层4地址

补充一下,显存是用户自由规划的,这里我们规划出来画布的宽度是800,即屏宽,那么每个图层的大小是:
800 x 480 x16bpp / 8bit=384000 x 2

Layer0绝对坐标:(0,480 * 0)
Layer1绝对坐标:(0,480 * 1)
Layer2绝对坐标:(0,480 * 2)
Layer3绝对坐标:(0,480 * 3)

上面的代码,参考下方流程图:
在这里插入图片描述
可能有些细心的R&D会注意到,范例中是将PNG先贴到Layer1,然后再将Layer1复制到Layer0,那为何不直接将PNG贴到Layer0呢?何必多此一举?这里卖个关子,先不细说,等您来探索!

至此,RA6807的参考程序全部介绍完毕!

如您还有兴趣,可访问论坛:https://bbs.lcdvision.com.cn

相关文章:

瑞佑液晶控制芯片RA6807系列介绍 (三)软件代码详解 Part.10(让PNG图片动起来)完结篇

RA6807是RA8876M的缩小版&#xff0c;具备RA8876M的所有功能&#xff0c;只将MCU控制接口进行缩减&#xff0c;仅保留SPI-3和I2C接口&#xff0c;其它功能基本相同。 该芯片最大可控制854x600的分辨率&#xff0c;内建64Mbits显存&#xff0c;多个图层&#xff0c;使用起来相当…...

Qt常用控件 按钮

文章目录 1. QAbstractButton 简介2. QPushButton2.1 例子1&#xff0c;设置按钮的图标2.2 例子2&#xff0c;设置按钮快捷键 3. QRadioButton3.1 介绍3.2 例子1&#xff0c;选择性别3.3 例子2&#xff0c;试试其他的信号3.3 例子3&#xff0c;分组 4. QCheckBox4.1 介绍4.2 例…...

MySQL学习/复习10视图/用户/权限/语言连接数据库

一、视图 1.1创建视图 1.2视图影响基表 1.3基表影响视图 1.4删除视图 1.5视图使用规则 二、数据库的用户 2.1mysql中的user表 注意事项&#xff1a;主机/用户名/密码/权限 2.2用户的创建 注意事项&#xff1a;设置密码与登录地点需谨慎 2.3删除用户 注意事项&#xff1a;% 2.4…...

vulfocus在线靶场:tomcat-pass-getshell 弱口令 速通手册

目录 一、启动环境&#xff0c;访问页面&#xff0c;并登录&#xff0c;账号密码都是tomcat 二、哥斯拉打war包&#xff0c;图解 三、上传war包&#xff0c;图解 四、访问我们直接url/木马文件名/木马文件.jsp&#xff0c;是否存在了 五、 哥斯拉测试连接结果success&…...

c#:winform调用bartender实现打印(学习整理笔记)

效果 学习路径 C# winform调用Bartender进行自定义打印、批量打印、检索文件夹中的模板_哔哩哔哩_bilibili 一、初始环境搭建见&#xff1a; c#:winform引入bartender-CSDN博客https://blog.csdn.net/weixin_46001736/article/details/143989473?sharetypeblogdetail&s…...

牛客题库 21738 牛牛与数组

牛牛与数组题目链接 题目大意 牛牛喜欢这样的数组: 1:长度为n 2:每一个数都在1到k之间 3:对于任意连续的两个数A,B,A<=B 与(A % B != 0) 两个条件至少成立一个请问一共有多少满足条件的数组,对 1 e 9 + 7 1e^9+7 1e9+7 取模 输入格式 输入两个整数 n , k n,k n,…...

探索PDFMiner:Python中的PDF解析利器

文章目录 **探索PDFMiner&#xff1a;Python中的PDF解析利器**1. 背景介绍&#xff1a;为何选择PDFMiner&#xff1f;2. PDFMiner是什么&#xff1f;3. 如何安装PDFMiner&#xff1f;4. 简单库函数使用方法4.1 提取文本4.2 获取页面布局信息4.3 提取表格数据4.4 提取图像 5. 应…...

掌握Go语言中的异常控制:panic、recover和defer的深度解析

掌握Go语言中的异常控制:panic、recover和defer的深度解析 在Go语言的编程世界中,异常处理是一个不可忽视的话题。Go语言提供了panic、recover和defer三个关键字来处理程序中的异常情况。本文将深入探讨这三个关键字的工作原理、使用场景和最佳实践,帮助读者在实际编程中更…...

云讷科技Kerloud无人飞车专利发布

云讷科技Kerloud无人飞车获得了“一种室内外两用的四旋翼无人飞车”的实用新型专利证书&#xff0c;作为科教社区第一款四旋翼飞车&#xff0c;这项技术结合了无人机和无人车的优势&#xff0c;提供了一种能够在多种环境下使用的多功能飞行器。 这项设计的优势如下&#xff…...

企业信息化-走进身份管理之搭建篇

​一、身份管理是什么 我们先要弄懂统一身份管理到底是什么&#xff1f; 统一身份管理&#xff08;Unified Identity Manager&#xff0c;UIM&#xff09;&#xff0c;身份管理&#xff08;Identity Management&#xff0c;简称IDM&#xff09;&#xff0c;也被称为IAM&#…...

实践指南:EdgeOne与HAI的梦幻联动

在当今快速发展的数字时代&#xff0c;安全和速度已成为网络服务的基石。EdgeOne&#xff0c;作为腾讯云提供的边缘安全加速平台&#xff0c;以其全球部署的节点和强大的安全防护功能&#xff0c;为用户提供了稳定而高效的网络体验。而HAI&#xff08;HyperApplicationInventor…...

Exploring Prompt Engineering: A Systematic Review with SWOT Analysis

文章目录 题目摘要简介方法论背景相关工作评估结论 题目 探索快速工程&#xff1a;基于 SWOT 分析的系统评价 论文地址&#xff1a; https://arxiv.org/abs/2410.12843 摘要 在本文中&#xff0c;我们对大型语言模型 (LLM) 领域的提示工程技术进行了全面的 SWOT 分析。我们强…...

ByteBuffer 与 ByteBuf 的对比与优缺点分析

在 Java 网络编程和高性能 I/O 场景中&#xff0c;ByteBuffer 和 ByteBuf 是两种重要的缓冲区处理工具。ByteBuffer 是 Java NIO 标准库的一部分&#xff0c;而 ByteBuf 是由 Netty 框架提供的增强缓冲区工具。在实际开发中&#xff0c;选择哪一种取决于场景需求和性能目标。 …...

js高级06-ajax封装和跨域

8.1、ajax简介及相关知识 8.1.1、原生ajax 8.1.1.1、AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML&#xff0c;就是异步的 JS 和 XML。 通过 AJAX 可以在浏览器中向服务器发送异步请求&#xff0c;最大的优势&#xff1a;无刷新获取数据。 按需请求&#xff0c;可…...

RabbitMQ3:Java客户端快速入门

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…...

D 型 GaN HEMT 在功率转换方面的优势

氮化镓 (GaN) 是一种 III-V 族宽带隙半导体&#xff0c;由于在用作横向高电子迁移率晶体管 (HEMT) 时具有卓越的材料和器件性能&#xff0c;因此在功率转换应用中得到越来越多的采用。 HEMT 中产生的高击穿电场 (3.3 MV/cm) 和高二维电子气 (2DEG) 载流子迁移率 (2,000 cm 2 /…...

Java Web后端项目的特点和组成部分

技术栈 #### Java Web技术&#xff1a; - **Servlet**&#xff1a;Java Web的核心&#xff0c;用于处理HTTP请求。 - **WebServlet注解配置**&#xff1a;用于简化Servlet的配置。 - **HttpServlet基类**&#xff1a;大多数Servlet都继承自此基类。 - **请求响应处理**&#x…...

Vue3 + Vite + TS 项目引入 Eslint + Pritter

文章目录 一、ESLint 简介主要功能适用场景常用的 Eslint 配置项 二、Pritter 简介主要功能适用场景常用的 Prettier 配置项 三、Vue3 Vite TS 项目引入 Eslint Pritter1. 安装 ESLint2. 初始化 ESLint 配置3. 在 Vite 项目中启用 ESLint4. 在 VS Code 中启用 ESLint5. 集成…...

用Tauri框架构建跨平台桌面应用:1、Tauri快速开始

Tauri 是一个构建适用于所有主流桌面和移动平台的轻快二进制文件的框架。开发者们可以集成任何用于创建用户界面的可以被编译成 HTML、JavaScript 和 CSS 的前端框架&#xff0c;同时可以在必要时使用 Rust、Swift 和 Kotlin 等语言编写后端逻辑。 Tauri 是什么&#xff1f; |…...

Django实现智能问答助手-数据库方式读取问题和答案

扩展 增加问答数据库&#xff0c;通过 Django Admin 添加问题和答案。实现更复杂的问答逻辑&#xff0c;比如使用自然语言处理&#xff08;NLP&#xff09;库。使用前端框架&#xff08;如 Bootstrap&#xff09;增强用户界面 1.注册模型到 Django Admin&#xff08;admin.py…...

牙齿龋齿检测数据集 YOLO模型如何训练牙齿病害数据集 权重识别龋齿

牙齿龋齿检测数据集&#xff0c;2554张&#xff0c;提供yolo和voc两种标注方式 1类&#xff0c;标注数量&#xff1a; caries: 6946 image num: 2554 &#x1f9b7; 龋齿检测数据集 (Dental Caries Detection Dataset) 属性详细描述数据集名称齿科龋齿目标检测数据集图像总数2…...

终极指南:如何在TouchGal一站式Galgame社区发现你的视觉小说宝藏

终极指南&#xff1a;如何在TouchGal一站式Galgame社区发现你的视觉小说宝藏 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next TouchGa…...

从信息收集到密码爆破:如何用DictGenerate定制你的专属社工字典?

从信息收集到密码爆破&#xff1a;如何用DictGenerate定制你的专属社工字典&#xff1f; 在授权渗透测试和安全评估中&#xff0c;社会工程学攻击往往是最难防御的一环。攻击者通过收集目标的个人信息&#xff0c;精心构造符合目标习惯的密码字典&#xff0c;能够显著提高暴力…...

电子设计竞赛必备:RC、运放、TTL信号处理电路实战指南(附避坑技巧)

电子设计竞赛信号处理电路实战&#xff1a;从RC滤波到TTL脉冲的进阶技巧 第一次参加电子设计竞赛时&#xff0c;我在信号处理环节浪费了整整两天时间——原本清晰的方波经过电路后变得面目全非&#xff0c;放大后的信号带着令人头疼的振荡&#xff0c;而评委要求的脉冲宽度总是…...

Local SDXL-Turbo保姆级教程:导出为ONNX格式进一步优化推理速度

Local SDXL-Turbo保姆级教程&#xff1a;导出为ONNX格式进一步优化推理速度 1. 引言&#xff1a;为什么需要导出ONNX&#xff1f; 如果你已经体验过Local SDXL-Turbo那“打字即出图”的畅快感&#xff0c;可能会想&#xff1a;这速度已经很快了&#xff0c;还能不能再快一点&…...

Claude Code 愚人节彩蛋:终端里的虚拟宠物伴侣

Claude Code 愚人节彩蛋&#xff1a;终端里的虚拟宠物伴侣 在 AI 编程助手的深处&#xff0c;藏着一个等待孵化的秘密——18 种 ASCII 精灵、5 级稀有度、完整的 RPG 属性系统。这可能是你见过的最可爱的命令行宠物。 意外的发现 在逆向分析 Claude Code 源码的过程中&#xf…...

Python偏函数partial的用法小结

functools.partial(func, /, *args, **keywords) 会返回一个新可调用对象&#xff0c;它把原函数 func 的部分位置参数和/或关键字参数“预先绑定”。 这样你就能得到一个“定制版”的函数&#xff0c;后续只需要补齐剩余参数即可调用。返回对象类型是 functools.partial 实例&…...

WarcraftHelper:让经典魔兽争霸III在现代电脑上焕发新生的全能助手

WarcraftHelper&#xff1a;让经典魔兽争霸III在现代电脑上焕发新生的全能助手 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸III在宽…...

XUnity.AutoTranslator:Unity游戏实时翻译插件终极指南

XUnity.AutoTranslator&#xff1a;Unity游戏实时翻译插件终极指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为看不懂外语游戏而烦恼吗&#xff1f;&#x1f3ae; 语言障碍让多少精彩游戏体验大…...

ide-eval-resetter:突破JetBrains IDE试用期限制的创新方案——2026开发者必备指南

ide-eval-resetter&#xff1a;突破JetBrains IDE试用期限制的创新方案——2026开发者必备指南 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 问题引入&#xff1a;JetBrains IDE试用期限制的痛点分析 作为开发…...