因为前期系统已经搭建好了,等换新电脑再出00系统搭建的文章,使用的是EPS32C3+0.42oled
直接TYPEC端口下载。
第一个例程是测试下载,使用的是Blink 我也把这个程序贴上来,只贴的图片,通常这步不用测试,但是注意选择的设备。
第二个例程是测试显示,首先是英文字库
#include <U8g2lib.h>
#define led 8
//# IIC version
U8G2_SSD1306_72X40_ER_1_SW_I2C u8g2(U8G2_R0,6,5,U8X8_PIN_NONE);
//U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,6,5,U8X8_PIN_NONE); //ESP32C3 OLED开发板的屏幕接线:scl-->gpio6 sda-->gpio5 如果是Arduino则改为scl-->A5 sda-->A4
void setup(void) {
pinMode(led, OUTPUT);
u8g2.setContrast(250);
u8g2.begin();
}
void loop(void) {
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW);
delay(100);
u8g2.firstPage();
do {
u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.drawStr(0,15,"ESP32-C3");
u8g2.drawUTF8(0,40,"ESP32-C3");
} while ( u8g2.nextPage() );
我是用了72X40的IIC驱动,X坐标是准的,Y坐标简单调整下即可。 UTF8 和Str对于英文的结果是一致的,屏幕输出两行 ESP32-C3
然后是中文字库 可以检索到 UTF8的字库
#include <U8g2lib.h>
#define led 8
//# IIC version
U8G2_SSD1306_72X40_ER_1_SW_I2C u8g2(U8G2_R0,6,5,U8X8_PIN_NONE);
//U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,6,5,U8X8_PIN_NONE); //ESP32C3 OLED开发板的屏幕接线:scl-->gpio6 sda-->gpio5 如果是Arduino则改为scl-->A5 sda-->A4
void setup(void) {
pinMode(led, OUTPUT);
u8g2.setContrast(250);
u8g2.begin();
}
void loop(void) {
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW);
delay(100);
u8g2.firstPage();
do {
u8g2.setFont(u8g2_font_unifont_t_gb2312);
u8g2.drawUTF8(0,15,"乙醇");
u8g2.drawUTF8(0,40,"字符");
} while ( u8g2.nextPage() );
}
如果使用chinese字库,有的复杂汉字显示不全。
第三个例程是屏幕动态显示
#include <U8g2lib.h>
#define led 8
//# IIC version
U8G2_SSD1306_72X40_ER_1_SW_I2C u8g2(U8G2_R0,6,5,U8X8_PIN_NONE);
//U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,6,5,U8X8_PIN_NONE);
char VarLab1[]="传感器1#:";
char VarLab2[]="2#:";
float Var1=90.23;
float Var2=0.2;
char VarNum1[10];
char unit[3]="mV";
void setup(void) {
pinMode(led, OUTPUT);
u8g2.setContrast(250);
u8g2.begin();
u8g2.setFont(u8g2_font_unifont_t_gb2312);
}
void loop(void) {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
dtostrf(Var1,3,2,VarNum1);
strcat(VarNum1,unit);
u8g2.firstPage();
do {
u8g2.drawUTF8(0,15,VarLab1);
u8g2.drawUTF8(0,37,VarNum1);
} while (u8g2.nextPage() );
delay(1000);
Var1=Var1+0.1;
}
这个程序可以动态显示传感器数值。
下次我们通过wifi 发送传感器数据。