基于STM32F103标准库的OLED多级菜单GUI实现

前言:本工程整体框架参考了一位大佬的例程 (http://t.csdnimg.cn/9XjT2),但原作者使用的STM32CubeMX(一款由ST公司自己设计的图形化编程软件)此软件自动生成的代码都是基于HAL库的,而且其是专为ST公司自己生产的芯片所设计的,和其他芯片(如国产)具有一定技术壁垒,所以一般本人使用较少......扯远了,回到正题,由于个人习惯,笔者就在原作者的基础上做了一个标准库的移植,以正点原子的OLED显示实验为工程框架,在正点原子的MINI板上将原工程以标准库实现。(本项目源码在本文末尾进行开源!

  硬件实物图:基于STM32F103标准库的OLED多级菜单GUI实现_第1张图片

效果图:

        温度计:

基于STM32F103标准库的OLED多级菜单GUI实现_第2张图片

  游戏机:基于STM32F103标准库的OLED多级菜单GUI实现_第3张图片基于STM32F103标准库的OLED多级菜单GUI实现_第4张图片

引脚连接:

OLED模块:

VCC --> 3.3V

GND --> GND

SCL --> PA2

SDA --> PA1

DHT11模块:

DATA --> PA11

VCC --> 3.3V

GND --> GND

KEY模块(这部分笔者直接使用了正点原子MINI板上的):

KEY0 --> PA15

KEY1 --> PC5

KEY_UP --> PA0


一、多级菜单


        随着工业化和自动化的发展,如今基本上所有项目都离不开显示终端。而多级菜单更是终端显示项目中必不可少的组成因素,其实TFT-LCD屏幕上可以借鉴移植很多优秀的开源多级菜单(GUI,比如:LVGL),而0.96寸的OLED屏幕上通常需要自己去适配和编程多级菜单。网上的普遍采用的多级菜单的方案是基于索引或者结构树,其中,索引法居多索引法的优点:可阅读性好,拓展性也不错,查找的性能差不多是最优,就是有点占用内存空间

说明:本项目的多级菜单也是采用了索引法进行实现。

二、索引法多级菜单,内部功能,代码实现

建议直接去看原作者的讲解,非常Nice http://t.csdnimg.cn/9XjT2

三、演示视频

STM32F103OLED多级菜单演示


四、总结与代码开源

总结:

HAL库到标准库的移植,主要采用了原作者的工程中的菜单和OLED的驱动文件,如果有想自己尝试移植的朋友们,有什么问题的话可以私信我。

代码地址:https://gitee.com/WYW3541/OLED-UIicon-default.png?t=N7T8https://gitee.com/WYW3541/OLED-UI

你可能感兴趣的:(stm32,嵌入式硬件,单片机,学习)