STM32——EMWIN位图显示(四)
EMWIN
文章目录
- EMWIN
- 前言
- 一、位图转换器
- 二、位图绘制 API 简介
- 1.GUI_DrawBitmap()
- 2.GUI_DrawBitmapEx()
- 三、实验代码
前言
很多情况下我们需要在 LCD 上显示图片,本章我们就看一下如何使用位图转换器将图片转换为 C 文件,然后调用 emWin 中的相应函数来显示这个 C 文件位图。
一、位图转换器
一般而言,emwin能够在任何显示器位置显示所有位图图像,使用emwin显示位图的时候需要先用位图转换器将要显示的图片转换为位图数组。在ST官网下载的STemWin源码包里面就有位图转换器这个软件。
向位图转换器中加载图片,点击位图转换器的“Flie->Open”,打开想要转换的图片,前面说过位图转换器可以打开 bmp,gif和 png 格式的图片
色彩转换,选择所需的调色板,点击“Image->Convert to”,如图 7.1.4 所示,我们可以看到,有很多种格式可以选择,这里我们选择“Best palette”,也就是“最佳调色板”,大家也可以尝试选择其他的格式试一下。
将位图存为 C 文件,点击“File->Save As”,注意这里选择存为.C 文件,如图 7.1.5 所示。注意,设置好文件的保存路径。
二、位图绘制 API 简介
GUI_DrawBitmap() 绘制位图。
GUI_DrawBitmapEx() 绘制缩放的位图。
GUI_DrawBitmapHWAlpha()在具有硬件 Alpha 混合支持的系统上绘制带 Alpha 混合信息的位图。
GUI_DrawBitmapMag() 绘制放大的位图。
我们最常用的就是 GUI_DrawBitmap()和 GUI_DrawBitmapEx()这两个函数
1.GUI_DrawBitmap()
2.GUI_DrawBitmapEx()
三、实验代码
在开发板上显示LAIENTEK的logo,并且不断的放大。
extern GUI_BITMAP bmALIENTEK; //ALIENTEK 图标
//显示 C 文件格式的位图
void draw_bitmap(void)
{GUI_SetBkColor(GUI_BLUE);
GUI_SetColor(GUI_YELLOW);
GUI_Clear();
GUI_SetFont(&GUI_Font24_ASCII);
GUI_SetTextMode(GUI_TM_TRANS); //透明显示
GUI_DispStringHCenterAt("ALIENTEK BITMAP DISPLAY",400,0 );
GUI_DrawBitmap(&bmALIENTEK,295,194); //绘制 ALIENTEK 图标
}
//在显示器中缩放位图
//Xmag:X 方向的比例因子,单位为千分之
//Ymag:Y 方向的比例因子,单位为千分之
void zoom_bitmap(int Xmag,int Ymag)
{GUI_SetBkColor(GUI_BLUE);
GUI_Clear();
GUI_DrawBitmapEx(&bmALIENTEK,400,240,105,46,Xmag,Ymag); //按照比例绘制位图
}
在上面程序中有两个函数 draw_bitmap()和 zoom_bitmap(),draw_bitmap()函数主要展示了
GUI_DrawBitmap()函数的使用,zoom_bitmap()主要展示了 GUI_DrawBitmapEx()的使用方法
//EMWINDEMO 任务
void emwin_maintask(void *pdata)
{int Xmag,Ymag; //缩放因子,单位 千分之
GUI_CURSOR_Show();
draw_bitmap(); //绘制位图,未作缩放处理
OSTimeDlyHMSM(0,0,2,0); //延时 2s
while(1)
{Xmag += 100;
Ymag += 100;
if(Xmag>=2000)Xmag = 100;
if(Ymag>=2000)Ymag = 100;
zoom_bitmap(Xmag,Ymag); //绘制缩放的位图
GUI_Delay(500);
} }
一开始先调用 draw_bitmap()函数显示 ALIENTEK 的 logo,延时 2s以后进入 while(1)循环中,循环调用 zoom_bitmap()函数显示由小到大的 ALIENTEK 的 logo,每次 X,Y 的比例因子增加 100‰,也就是十分之一。
STM32——EMWIN位图显示(四)相关推荐
- STM32——EMWIN基础显示(一)
EMWIN 文章目录 EMWIN 一.文本显示 二.重点API函数简介 1.GUI_SetTextMode() 2.GUI_SetTextAlign() 3. GUI_Clear()和 GUI_Dis ...
- 【正点原子STM32连载】第四十七章 汉字显示实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...
- STM32与OLED显示姓名学号
一.SPI简介 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是由 Motorola 公司提出的一种高速的,全双工,同步的通信总线,被广泛地使用在 ADC.LC ...
- 基于STM32与PCA9685制作四足机器人(代码开源)
前言:本文为手把手教学基于STM32的四足机器人项目--JDY-31蓝牙控制,特别地,本次项目采用的是STM32作为MCU.四足机器人的支架为3D打印件,SG90舵机驱动机器人实现姿态 ...
- 基于STM32的OLED显示
基于STM32的OLED显示 一.什么是OLED 二.了解SPI SPI协议概括 同步串行口 三.学号姓名的显示 1.汉字点阵获取 代码修改 3.硬件连接 4.烧录编译结果 总结 参考文献 一.什么是 ...
- 毕业设计 —— 基于STM32手势控制显示系统的设计
目录 一.前言 二.项目背景及资源分享 三.项目简介 1.项目名称 2.系统框架 3.功能简介 4.控制核心 5.最小系统: 6.外围模块: 四.相关设计原理及框图 1.系统设计的原理 2.手势识别原 ...
- 基于STM32进行OLED显示
目录 一.SPI接口简介 1.SPI的简介 2. SPI 接口4条线通信: 3.SPI的特征 4.接口框图 5.SPI整体的通讯过程 二.OLED的原理 1.OLED模块参数 2.该模块的特点: 3. ...
- matlab同窗口显示图片,[求助]关于GUI的问题,如何在同一窗口里显示四副图片...........
[求助]关于GUI的问题,如何在同一窗口里显示四副图片........ 我接到老师给的一个课题,现在遇到了困难.来向大家求助!希望大家能帮小弟一个忙,小弟感激不尽!我以前没接触过MATLAB,可以说是 ...
- Java黑皮书课后题第8章:*8.33(几何:多边形的子面积)一个具有四个顶点的凸多边形被分为4个三角形,编写一个程序,提示用户输入4个顶点的坐标,然后以升序显示四个三角形的面积
*8.33(几何:多边形的子面积)一个具有四个顶点的凸多边形被分为4个三角形,编写一个程序,提示用户输入4个顶点的坐标,然后以升序显示四个三角形的面积 题目 题目描述与运行示例 破题 代码 题目 题目 ...
- stm32数码管显示实时时间并有闹钟功能
stm32数码管显示实时时间并有闹钟功能 功能描述 数码管介绍 数码管芯片 段选与位选 驱动数码管显示代码 实验思路 完整代码 Led.h Led.c Key.h Key.c beep.h beep. ...
最新文章
- mysql删除redo_删除redo log group or member
- 虚拟网卡与物理网卡TCP协议数据传输对比
- Transform数据权限浅析2之利用Java完成权限设置
- SQL ABAP ST05 hint
- E. 数好多好多猴(南阳理工oj—21新生第二场招新赛)
- mysql brighthouse_mysql的三方Infobright数据仓库BRIGHTHOUSE引擎
- 【系统架构设计师】软考高级职称,一次通过,2017年下半年系统架构设计师考试论文真题(论软件架构风格)
- mysql怎么求平均体重_怎样计算平均身高和平均体重
- Selenium 2自动化测试实战5(模块调用)
- 偏微分方程数值解的matlab 实现,偏微分方程数值解的Matlab 实现
- 三星SOC的显示控制器及framebuffer驱动s3c-fb.c中probe函数分析
- Air Keyboard
- Eclipse反编译插件 Enhanced Class Decompiler
- 新闻人物言论自动提取
- 读书笔记之张潇雨个人投资课
- NMN是什么概念,nmn是真的还是假的,你一定要知道
- 2021年最新Android面试点梳理,成功入职腾讯
- Win10安装Linux子系统教程
- 重点知识学习(8.4)--[线程池 , ThreadLocal]
- 宜家新型智能灯泡被指易遭黑客入侵