一直以来对硬件也是比较感兴趣的,前段时间正好有一个契机买了块开发板来玩,板子是乐蕊的 ESP32-C3,然后通过 I2C 接口接了温湿度传感器和 128x64 分辨率的 OLED 屏幕,刷的是 MicroPython 固件,先做一个带天气功能的小时钟来练练手。
一般我们在开发传统的桌面、网页、移动端应用时,最基础的显示层实现往往都是现成的,只需简单的把内容放到对应层就可以了,但在做这类比较底层的硬件开发的时候,因为板子的性能非常基础,所以基础的系统并没有非常复杂的封装,为了实现自己想要的效果,我花了不少时间在做 OLED 屏的文字显示方面的研究和优化实现。
首先看一下最基础的需求,就是能够显示自定义的字体,能够显示中文,再深入一点就是能够中英文不同宽度的字体混排,自动换行等等,这些看似无比简单的功能在这种开发板上却是相当的复杂。
在网上搜对应的关键字会发现有大量的实例,但大多是零散的代码,有不少照搬也不能用。所以在经过深入研究之后有了此文描述我在 MicroPython、OLED 屏的文字显示实现和优化过程。