本文是根据下面这篇文章一步一步来做的,最终也是实现了效果。
基于STM32移植U8g2图形库——OLED显示(HAL库)_stm32 u8g2-CSDN博客
大家可以按照该博客一步步来写,中途中也是出现了一些细节上的问题,比如作者在文件中加入了delay函数,但是没有给出定义,遇到这个问题自己写出delay函数即可。
其它比较麻烦的就是添加文件,需要添加和删除的文件太多了,过程比较容易出错,这里来简单讲解一下。
找到上侧的三个方块,这样能加入u8g2源文件进左侧目录中。
由于u8g2代码较多,内存较大,stm32c8t6不能存储这么大,而且很多代码都是用不上的,比如其它型号单片机的u8g2代码,因此得删除很多文件,按照上面转载的博客一步一步删除就行了。
当所需文件都添加进左侧目录内,我们还需添加上刚才添加的文件的文件路径,以便keil编译器在编译代码能够识别添加文件的路径。
确保所有包含u8g2文件的文件夹路径按照上面添加进去再进行下一步。
所有代码都添加进去了,然后写一下代码看看效果。
void myTest(u8g2_t *u8g2)
{
u8g2_ClearBuffer(u8g2);
u8g2_SetFontDirection(u8g2, 0);
u8g2_SetFont(u8g2, u8g2_font_inb24_mf);
u8g2_DrawStr(u8g2,30, 50, "this");
u8g2_SendBuffer(u8g2);
SEND_BUFFER_DISPLAY_MS(u8g2,1000);
}
最后效果:
注意显示字符串要先设置字体才显示出来。
除此之外,u8g2的功能也是非常的多,画圆、半圆、矩形、实心矩形。
如果想做动画,可以借助取模软件将动画一帧一帧的取模,转换成01矩阵保存在代码的数组中,然后调用不同数组加上delay函数即可实现动画效果,大家可以去尽情探索。