使用u8g2图形库点亮oled有很多好处,首先不需要修改内核驱动和设备树,保证内核源码稳定干净。 其次u8g2提供了丰富的图像库函数供使用者调用,很轻松实现用户需要的显示内容。
1、屏幕介绍:
接口:I2C4 寄存器地址0x3c oled驱动芯片:ssd1316 屏幕像素:0.91inch, 128*32
2、u8g2驱动源码 【1】下载地址:gitee.com/penjun71/u8… 【2】修改源码linux-i2c.c中addr=0x3c,adapter_nr = 4 【3】确认sys/linux-i2c/12832-oled/main.c中 #define SSD1306_ADDR 0x3c* 【4】修改编译Makefile,添加交叉编译工具CC和SRS源文件即可
3、交叉编译main.c 运行系统:linux4.19,配置好main.c后,直接 make,生成oled_demo,放到开发版中执行,可以看到OLED屏幕点亮并显示main.c中绘制的图形。
4、其他点亮方法 传统的驱动OLED方法是在内核驱动中加载显示驱动芯片ssd1316的驱动,有两种方法,一种是把ssd1316的驱动.c文件放进/kernel/driver下面,修改Makefile和Kconfig;另一种方式是新建一个目录,把驱动文件单独拿出来,配置好Makefile后交叉编译为ko文件,再放进开发板insmod即可。 以上两种方式其实是一种,区别是编译为内核镜像或者模块。 不管哪一种方式都需要配置设备树文件。
以上提及的点亮方法我本地都有实现并有绘图到oled显示,总体感觉使用u8g2图形库的方法会更方便快捷,对绘图也有本质的不同。