引用的第三方SSD1306库驱动都是申请1KB芯片内存做为显示缓冲,这样在不添加其它功能代码情况下编译就占用50%的内存空间。百试不爽,只好用现成驱动封装一个不申请空间的SSD1306库了。中英文混合显示。
#include "OLED.h"
OLED oled;
void setup(void){
Serial.begin(9600);
oled.Init();
oled.Clear();
oled.ShowString(88, 0, 12, "POWER", 1);
oled.ShowString(88, 1, 12, "20.4V", 1);
oled.ShowCHinese(0, 0, "95%", 1);
oled.ShowCHinese(28, 0, "{||||}", 1); //功率条显示
oled.ShowString(88, 2, 12, "T:05M", 1);
oled.ShowString(88, 4, 16, " ", 0); //空白符填充
oled.ShowNum(94, 4, 328, 3, 16, 0); //设置温度显示
oled.ShowString(119, 4, 16, "`", 0); //小温度圈
oled.ShowCHinese(96, 6, "箭 ", 1);
//oled.Pixel(100, 60);
}
void loop(void){
for (u16 i = 0; i < 255; i++)
{
//oled.BrigControl(i); //屏幕亮度设置
oled.ShowNum48(0, 3, i, 3, 1);
oled.ShowCHinese(72, 3, "圈", 1); //大温度圈
oled.ShowString(118, 6, 16, "~", 1); //加热点
oled.ShowCHinese(28, 0, "{||} ", 1); //功率条显示
oled.ShowCHinese(0, 0, "65", 1);
delay(10);
oled.ShowString(118, 6, 16, " ", 1);
oled.ShowCHinese(28, 0, "{|||} ", 1); //功率条显示
oled.ShowCHinese(0, 0, "80", 1);
delay(10);
}
}
1