跟着野火从零开始手搓emWin(1)初识emWin

PS:在嵌入式领域,本人认为QT的应用范围和性能几乎吊打市面上所有的GUI工具。但是本人之所以学习emWin,是因为自己有些微不足道的小想法,需要通过它来实现。但是QT有点吃硬件的配置,为了MCU专门发行的QT我又懒得去弄(玩嵌入式的多少都知道装QT的痛),所以我选择emWin。因为很大一部分原因是出于爱好,所以这个系列会更新的很慢。

        这一篇算是简单介绍,没什么有营养的东西,可以直接跳过。

emWin库文件

        目前, ST 官网中的 STemWin 版本已经不再继续更新, ST 已经将最新版本的STemWin 放到了 STM32 CUBE 库中。 STM32 CUBE 库可以从官网或者 STM32CubeMX 软件中获得。我这里使用的是野火提供个软件包,所以使用的版本为5.44a。

        解压得到STemWin库之后,其目录下内容如图所示:

        Config :其中的 GUIConf.c 文件用于配置 emWin 的存储空间分配,GUIConf.h 文 件 用 于 裁 剪 emWin 的 功 能 。其余的文件是 emWin 应用在不同液晶时使用的不同驱动模板;

        Documentation 提供了 emWin 库的用户手册。

        inc :它包含了全部的 emWin 库核心的头文件,各种关于库函数的声明、定义都在这些文件里面;

        Lib :包含 emWin 的代码库文件,针对不同 CPU 内核以及是否优化,都有一个相对应的 emWin 库,在使用的时候可以根据自己的平台选择合适的库文件;

        OS :它包含了 GUI_X.c 及 GUI_X_FreeRTOS.c 文件,分别是对应裸机平台的 GUI 延时,和多任务系统平台的关于进程调度之类的一些 emWin 所需要的底层接口;

        Simulation :它包含了用于 PC 端仿真时的 lib 库和一些依赖,但不包含PC 端仿真的完整工程。

        Software :它包含了 许多 PC 端辅助开发的软件工具。比如 BmpCvt.exe 用于把图片数据转换成 C 文件, GUIBuilder.exe 是一个使用图形界面方式开发 emWin 应用的工具,FontCvt.exe 则用于字体文件转换;

        Release_Notes.html :关于 emWin 库不同发行版本的简要更新说明文档。

emWin 应用的软件架构

        emWin 的软件架构如下:

        首先是硬件层,硬件层也就是我们常说的底层驱动,它提供了对硬件平台资源最直接的访问; emWin 软件库承上启下,它运行在硬件层之上,与硬件层之间仅靠液晶驱动连接起来,而向应用层则提供了各种便于用户制作 GUI 应用的接口。

        如果不使用 emWin 的软件架构,很可能由硬件层直接过渡到应用层。这样的应用程序将十分依赖于某个特定的硬件平台,不容易迁移到其它设备之中。而使用软件架构的好处就是方便我们进行移植。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2980871.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

vscode将本地服务转发到外网地址访问

示例中将本地的5500端口,用vscode进行端口转发,在外网地址访问服务 要转发的端口 转发端口 点击转发端口 输入要转发的端口,按下回车 Enter 点击允许,弹出确认界面后点击打开 转发端口已经成功配置上,右键可见性…

四川赢涟电子商务有限公司是做什么的?

在当今数字化浪潮中,电子商务以其独特的魅力和无限潜力,成为了商业领域的新宠。而在这股潮流中,四川赢涟电子商务有限公司以其对抖音电商的深入研究和专业服务,成为了行业内的佼佼者。 一、深耕抖音,领跑电商新赛道 四…

centos 安装配置文件中心 nacos2.2.3 稳定版

安装mysql 8 参考文章 centos7搭建mysql5.6 && mysql 8.0_centos7 mysql5.6-CSDN博客 安装 jdk 17 官网下载 对应的版本 Java Downloads | Oracle wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_l…

(5)步态识别论文研读——GaitDAN:基于对抗域适应的跨视角步态识别

GaitDAN: Cross-view Gait Recognition via Adversarial Domain Adaptation | IEEE Journals & Magazine | IEEE Xplore GaitDAN: Cross-view Gait Recognition via Adversarial Domain Adaptation 基于对抗与适应 摘要:视角变化导致步态外观存在显着差异。因…

qt实现打包

qt实现打包 qt打包流程如下:打包你要注意的点教程 qt打包流程如下: 1,.Release编译: 1),找到release目录(一般会有debug和release两种模式),就是有exe目录的那个文件夹 2),给项目…

QT中基于TCP的网络通信

QT中基于TCP的网络通信 QTcpServer公共成员函数信号 QTcpSocket公共成员函数信号 通信流程服务器端通信流程代码 客户端通信流程代码 使用Qt提供的类进行基于TCP的套接字通信需要用到两个类: QTcpServer:服务器类,用于监听客户端连接以及和客…

牛客网刷题 | BC61 牛牛的二三七整除

描述 牛牛从键盘输入一个整数,请你判断这个整数能被 2 3 7 中哪几个数整除,并按升序输出。如果不能被 2 3 7 任意一个数整除则输出 n。 输入描述: 输入一个整数 输出描述: 输出能被 2 3 7 哪几个数整除,并按升序输…

华为海思校园招聘-芯片-数字 IC 方向 题目分享——第七套

华为海思校园招聘-芯片-数字 IC 方向 题目分享——第七套 (共9套,有答案和解析,答案非官方,未仔细校正,仅供参考) 部分题目分享,完整版获取(WX:didadidadidida313,加我备注&#x…

【软考经验分享】软考-中级-嵌入式备考

这里写目录标题 教辅用书嵌入式系统设计师考试大纲嵌入式系统设计师教程嵌入式系统设计师5天修炼嵌入式系统设计师考前冲刺100题 刷题软件希赛网软考真题 视频教程希赛网王道-计组计网 教辅用书 嵌入式系统设计师考试大纲 50页左右,内容为罗列一些考点&#xff0c…

QML 不同风格和主题的切换

Quick程序提供了方便的用于切换不同风格和主题的配置文件,如果没有设计稿,又想界面没那么丑,那么可以用这套配置,让应用看起来相对专业一点。 一,在 qrc 资源文件中添加 qtquickcontrols2.conf 文件。 二,…

YOLOv8改进项目汇总-超全改进-ultralyticsPro介绍:订阅了《芒果YOLOv8原创改进专栏》的读者免费赠送,包括很多稀有改进

🔥🔥🔥专注于YOLOv8改进,NEW - YOLOv8 🚀 in PyTorch >, Support to improve Backbone, Neck, Head, Loss, IoU, LA, NMS and other modules🚀 Makes YOLOv8 improvements easy again 芒果出品 YOLOv8…

AI计算中的光学模块:波分复用器的应用前景

在人工智能(AI)的计算领域,光学模块扮演着至关重要的角色。随着AI技术的飞速发展,对数据处理速度和带宽的需求日益增长。光学模块,特别是波分复用器(WDM),因其高速、大容量的数据传输…

【书生浦语第二期实战营学习笔记作业(七)】

课程文档:https://github.com/InternLM/Tutorial/blob/camp2/opencompass/readme.md 课程作业:https://github.com/InternLM/Tutorial/blob/camp2/opencompass/homework.md OpenCompass 大模型评测实战 1. 大模型的评测1.1 大模型评测如何促进发展1.2 大…

适用于手机蓝牙的热敏晶体FA1612AS

EPSON推出的一款1612小尺寸无源热敏晶体:FA1612AS。FA1612AS的额定频率为38.4Mhz的晶体单元,采用无铅材料,符合ROHS标准,内置热敏电阻,可用于移动电话,蓝牙等。热敏晶体FA1612AS的产品特性:额定频率:38.4MHZ外部尺寸规…

【MATLAB源码-第196期】基于matlab的A*融合DWA算法栅格路径规划仿真,画出路径图、姿态角度以及线角速度。

操作环境: MATLAB 2022a 1、算法描述 A算法与DWA算法的融合是一个高效的路径规划策略,这种策略将A算法的全局路径规划能力与DWA算法的局部避障能力结合起来,以期达到更快、更安全的导航效果。以下是对这种融合策略的详细描述。 一、基本概…

ESP32开发

目录 1、简介 1.1 种类 1.2 特点 1.3 管脚功能 1.4 接线方式 1.5 工作模式 2、基础AT指令介绍 2.1 AT指令类型 2.2 基础指令及其描述 2.3 使用AT指令需要注意的事 3、AT指令分类和提示信息 3.1 选择是否保存到Flash的区别 3.2 提示信息 3.3 其他会保存到Flash的A…

更易使用,OceanBase开发者工具 ODC 4.2.4 版本升级

亲爱的朋友们,大家好!我们的ODC(OceanBase Developer Center )再次迎来了重要的升级V 4.2.4,这次我们诚意满满,从五个方面为大家精心打造了一个更加易用、贴心,且功能更强的新版本,相…

宁盾LDAP统一用户认证与单点登录:构建高效安全的企业身份认证

在信息化时代,企业面临着众多的应用系统和数据资源,如何有效地管理和保护这些资源,确保信息安全和高效利用,成为了企业信息化建设的核心问题。LDAP统一用户认证和单点登录(SSO)作为一种高效、安全的身份验证…

每天五分钟计算机视觉:基于YOLO算法精确分类定位图片中的对象

滑动窗口的卷积的问题 滑动窗口的卷积实现效率很高,但是它依然不能够输出最精准的边界框,比如下面所示: 我们可以看到蓝色框不论在什么位置都不能很好的确定车的位置,有一个算法是YOLO 算法它能够帮助我们解决这个问题。 YOLO 算法 比如我们的输入图像是100*100,我们会…

StarRocks最佳实践经验

目录 一、部署 1.1 容量规划 1.2 基础环境配置 1.3 机器配置 1.3.1 FE节点 1.3.2 BE节点 1.4 部署方案 二、建模 2.1 建表规范 2.2 模型选择 2.3 排序列和前缀索引选择 2.4 分区选择 2.5 分桶选择 2.6 字段类型 2.7 索引选择 2.7.1 Bitmap索引 2.7.2 Bloom fi…