
在之前做 CH32V003 系列项目时,总是会用到 0.96 寸 12864 OLED 屏幕,用来显示数据和进行用户交互操作。一开始是直接用了 CH32V003-GameConsole 项目中的 oled_min.c
,不过那个是只用来显示一个位图,并且还不太能支持任意位置显示,因此就需要改造一番。
另外之前在做电流表项目时,也找了好多点阵字体,发现都是用了一个 DCfont
的结构体,如果能兼容这个格式,后续项目中使用不同字体时就可以很方便的替换了。
至于为什么要自己写这个库,是因为这个是在 CH32V003 上用的,16KB Flash + 2KB SRAM 的资源相当紧张,没办法使用 Arduino 中成熟的库,只好自己写一个,顺便学习一下。
字体及位图数据结构
DCfont
这个数据结构如下所示。
struct DCfont {
uint8_t *data;
uint8_t width;
uint8_t height;
uint8_t min, max;
};
刚好对于单色 XBMP 图像来说,在渲染时也差不多是需要相同的参数,刚好用同一个函数来同时兼容绘制 DCfont
和 XBMP 了。…
阅读全文 »
近期评论