ESP32 C3 开发板使用教程 01-测试显示屏

发布于:2025-08-19 ⋅ 阅读:(15) ⋅ 点赞:(0)

因为前期系统已经搭建好了,等换新电脑再出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 发送传感器数据。


网站公告

今日签到

点亮在社区的每一天
去签到