目前Arduino平台上使用最广泛的OLED库: U8G2
github地址:
https://github.com/olikraus/u8g2/ 设置和参考手册:
https://github.com/olikraus/u8g2/wiki
U8g2:单色显示器库,版本2
U8g2是用于
嵌入式设备的单色图形库。U8g2支持单色OLED和LCD,包括以下控制器:SSD1305,SSD1306,SSD1309,SSD1322,SSD1325,SSD1327,SSD1329,SSD1606,SSD1607,SH1106,SH1107,SH1108,SH1122,T6963,RA8835,LC7981,PCD8544,PCF8812,HX12 ,UC1601,UC1604,UC1608,UC1610,UC1611,UC1701,ST7565,ST7567,ST7588,ST75256,NT7534,IST3020,ST7920,LD7032,KS0108,SED1520,SBN1661,IL3820,MAX7219(完整列表请参见 此处 )。
为什么要运用U8g2库?
支持单片机平台:
再platformIO.ini中配置库
方法可以分为四大类:
初始化显示器, 清屏, 唤醒屏幕
只是初始化显示器, 并不清屏, 也不唤醒屏幕
开启UTF-8后,我们可以使用其UTF-8字库
如果支持绘制颜色(也就是不是单色显示器),那么由setDrawColor设置;
例: 画圆动画 (4帧😂😂😂😂)
实例:
示例:下面例子,ascent是18
示例:下面例子,descent是-5
启用(1)或禁用(0)透明模式
U8g2支持三种绘制模式:
特点:
用法:
特点:
特点:
看例程里有无数条代表着各种屏幕的写好的U8g2初始化语句,选择适合的一条解除注释即可
我的ESP32 DEVKIT V1+SSD1306(IIC)是选择这个:
https://github.com/olikraus/u8g2/wiki/fntlistall
https://github.com/olikraus/u8g2/wiki/fntgrpiconic
示例: 显示所有iconic图标
https://github.com/olikraus/u8g2/wiki/fntgrpwqy
可以看到, 最小的字高12px, 最大的字高18px,如果想要更大的字,请取XBM格式字模
我使用了在线
转换器:
https://convertio.co/zh/image-converter/?utm_source=chrome_extension 整个转换过程很简单, 转换好的XBM文件用记事本打开就能看到数组了, 感觉比传统的 Img2Lcd 或者 PCtoLCD2002 好用