跟着野火从零开始手搓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 的软件架构,很可能由硬件层直接过渡到应用层。这样的应用程序将十分依赖于某个特定的硬件平台,不容易迁移到其它设备之中。而使用软件架构的好处就是方便我们进行移植。

相关推荐

  1. cherno游戏引擎【20】混合(blend)

    2024-04-24 06:50:01       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-24 06:50:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-24 06:50:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-24 06:50:01       87 阅读
  4. Python语言-面向对象

    2024-04-24 06:50:01       96 阅读

热门阅读

  1. flask_apscheduler 定时任务框架

    2024-04-24 06:50:01       36 阅读
  2. 数据分析-pandas2

    2024-04-24 06:50:01       25 阅读
  3. R语言 数据的整理与清洗(Factor篇)

    2024-04-24 06:50:01       39 阅读
  4. 2024 年中国VR行业研究报告

    2024-04-24 06:50:01       42 阅读
  5. 35、Lua 中的模块与module函数

    2024-04-24 06:50:01       40 阅读
  6. LT1931

    2024-04-24 06:50:01       39 阅读
  7. Lua调用函数的方式汇总

    2024-04-24 06:50:01       32 阅读
  8. Collections.singletonList

    2024-04-24 06:50:01       35 阅读
  9. 基于EasyExcel实现的动态表头工具类

    2024-04-24 06:50:01       78 阅读
  10. table表格导出为excel文件并设置样式

    2024-04-24 06:50:01       160 阅读
  11. 使用 Python 保留 Excel 表头和第一行数据的两种方法

    2024-04-24 06:50:01       150 阅读