上一次咱们简单说了一下hello world程序,今天咱们聊聊OLED屏幕的使用,并下载网上demo案例进行简单分析。 首先,在下载之前咱们先看看CH2601开发板屏幕原理图,如下: 通过引脚的定义可以知道,屏幕的SPI-CS等引脚分别对应PA27-PA30这4个引脚,到时程序控制时也是对这4个引脚进行时序的控制。 然后,咱们网上下载DEMO程序,进行编译下载。 下载成功后,屏幕显示如下: 下面咱们简单分析一下程序: 主任务中调用一个“aos_task_new()”函数,进行“gui_lvgl_task()”函数的调用,而gui_lvgl_task()函数里面包含了 屏幕初始化OLED_INIT()函数和gui_label_create()函数,while(1)里面lv_task_handler()是对显示程序的循环出理, 具体函数里面内容截图如下: OLED屏相关的文件都在oled.c中,包含咱们开始原理图说的那4个引脚,最终lv_label_set_text()这个函数才是最终 传递显示的内容,都在lvgl文件夹下面。 对于lvgl这个文件是啥我也简单百度了一下(其实就是一个开源的库函数,理解不到位,请大家批评指正,谢谢),如下: LVGL全称Lightand Versatile Graphics Library,是一个自由的,开源的GUI库,具有界面精美,资源消耗小, 可移植度高, 响应式布局等特点, 全库采用纯 c 语言开发. 主要特性如下. · 1、具有非常丰富的内置控件,像 buttons, charts, lists, sliders, images 等 · 2、 高级图形效果:动画,反锯齿,透明度,平滑滚动 · 3、支持多种输入设备,像 touchpad, mouse, keyboard, encoder 等 · 4、支持多语言的UTF-8 编码 · 5、支持多个和多种显示设备,例如同步显示在多个彩色屏或单色屏上 · 6、完全自定制的图形元素 · 7、硬件独立于任何微控制器或显示器 · 8、可以缩小到最小内存 (64 kB Flash, 16 kB RAM) · 9、支持操作系统、外部储存和 GPU(非必须) · 10、仅仅单个帧缓冲设备就可以呈现高级视觉特效 · 11、 使用 C 编写以获得最大兼容性(兼容 C++) · 12、支持 PC 模拟器、为加速GUI 设计,提供教程,案例和主题,支持响应式布局、提供了在线和离线文档、基于自由和开源的 MIT 协议、支持MicroPython
其实对于这个图形界面还有许多深入分析的,可能本人能力有限就不再深入分析了,感兴趣的可以下载下来自行学习,谢谢!
下次咱们对GPIO进行分析了解一下。
|