项目地址:https://github.com/AstraThreshold/oled-ui-astra.git
项目 README 文件
## powered by astra UI.# [Releases](https://github.com/dcfsswindy/oled-ui-astra/releases)# [Wiki](https://github.com/dcfsswindy/oled-ui-astra/wiki)# [Video](https://www.bilibili.com/video/BV16x421S7qc)
国内访问 github 速度比较慢,建议访问加速镜像网址(dgithub.xyz):dgithub.xyz/dcfsswindy/oled-ui-astra/wiki 学习其使用文档,
或者访问地址:https://gitcode.com/gh_mirrors/ol/oled-ui-astra 进行克隆
首先,想象自己是一个采访 "Astra UI"这个明星的记者,思考准备问它几个问题吧:
疑问1:其适配的硬件条件是什么?
疑问2:Astra UI是否简单易用?如何写一个最简单的二级页面?
疑问3:如何设置页面中元素的动作(相当于QT中的 SIGNAL 和 SLOT)
疑问4:Astra UI 是基于 C++的吗?光用C语言可以运行吗?
疑问5:Astra UI有哪些有趣的特效和功能?能够解决哪些方面的难题?
疑问6:Astra UI支持哪些屏幕,是否适配其他平台?移植是否容易?
疑问7:Astra UI 相较于其他GUI库,比如U8g2,比如Lvgl,比如TFT_LCD等等,有哪些优势或者特点?
带着这些问题,进行我们的探索之旅吧:
疑问1:其适配的硬件条件是什么?
astra UI
可以支持目前主流的硬件平台,包括 STM32
、Arduino
、ESP32
等。 若您的硬件平台默认情况下不支持 C++
编程(如 STM32
),可在网络上搜索对应的支持方式。只要硬件平台可以支持 C++
编程,astra UI
都可以成功部署并运行。 但仍有一些推荐的硬件平台配置,若您的硬件平台满足以下配置,可能会获得比较优秀的使用体验:
- 主频率大于等于 40 MHz
- 显示数据传输总线速率(如
SPI
)大于 1 Mbps- 在
astra UI v0.0.2-alpha
中,数据传输速率会影响各种动画的速度 - 后续的版本更新会解决这一问题(详见“更新计划”)
- 下个版本后,普通的软件模拟低速
I2C
协议即可得到正常的使用体验 - 若您的传输速率达不到此要求,动画速度会变慢,但不会影响使用
- 在
- FLASH 大于等于 128 KB (著名的STM32F103C8T6 不满足要求,因为它是 64KB 的)
- 后续的版本更新会优化、裁剪程序结构
- 经测试,在
astra UI v0.0.2-alpha
中:- 不添加任何菜单,单纯部署
astra UI
到硬件平台,约占用 80 KB - 添加两级菜单,其中包括一页图标页和一页列表页,约占用 90 KB
- 添加两级具有七个元素的菜单,包括一页图标和一页列表,约占用 100 KB
- 不添加任何菜单,单纯部署
- 至少一个
ADC
端口(可选的,用于生成真随机数,您也可以用其他方式生成)- 每次开机动画背景星星生成的位置使用了真随机数
- 以下情况需要您特别配置
HAL
,详见“移植(部署)教程”- 若您想更改随机数生成方式
- 若您不想星星的位置随机生成
- 若您使用的硬件平台没有
ADC
端口 - 若您不想使用
ADC
- 若您不想在开机时显示
astra UI
开机动画,请与作者取得联系获得Pro
版
- 两个按键,分别用于
选择上一项/返回上一级
和选择下一项/确认
- 当然您也可以在
派生HAL
中自定义按键处理的方式 - 关于
HAL
,在下文中会有提及
- 当然您也可以在
在
astra UI
测试阶段,笔者使用的硬件平台是STM32F103CBT6
。 其具有 128 KB 的 FLASH;72 MHz 的主频率。 如果您的硬件平台与笔者相同,可以直接刷入仓库中的源码,无需另外移植。 笔者的具体接线方式,可参考下文“例程”内容。
附:STM32芯片型号规则——第二位数字代表 FLASH 容量:
STM32的命名规则主要包括以下几个部分:1 家族名称:STM32表示这是一个基于ARM Cortex-M内核的32位微控制器(MCU)。
2 芯片类型:例如“F”表示通用型芯片,“L”表示低功耗型,“H”表示高性能型。
3 子系列:例如“103”表示基础型子系列,“407”表示增强型子系列。
4 引脚数目:例如“Z”表示144个引脚,其他常见的有“C”表示48引脚,“R”表示64引脚,“V”表示100引脚,“I”表示176引脚,“B”表示208引脚,“N”表示216引脚。
5 内部Flash容量:例如“E”表示512KB,其他常见的有“4”表示16KB,“6”表示32KB,“8”表示64KB,“B”表示128KB,“C”表示256KB,“F”表示768KB,“G”表示1024KB。
6 封装类型:例如“T”表示LQFP封装,其他常见的有“H”表示BGA封装,“U”表示VFQFPN封装。
7 温度范围:例如“6”表示工作温度范围为-40°C到85°C,其他常见的有“7”表示工作温度范围为-40°C到105°C。实际应用中的例子
以STM32F103C8T6为例:1 STM32:表示这是一个基于ARM Cortex-M内核的32位微控制器。
2 F103:表示这是一个基础型子系列的增强型芯片。
3 C8:表示该芯片有48个引脚,内部Flash容量为64KB。
4 T6:表示该芯片的封装类型为LQFP,工作温度范围为-40°C到85°C。