/**
@author bszydxh([email protected])
@brief 单片机开发演示程序-入门 oled显示&led闪烁
@version 0.1
@date 2023-12-08
*/
// 单次编译时间较长约60s,请耐心等待~
#include "Arduino.h"
#include "U8g2lib.h"
U8G2_SSD1306_128X64_NONAME_F_HW_I2C
u8g2(U8G2_R0, /* reset=*/U8X8_PIN_NONE, /* clock=*/16, /* data=*/17); // 定义u8g2
int print_times = 1;
char str_buf[40];
// setup() 函数在程序开始运行时仅执行一次。它用于进行一次性的初始化设置,例如配置引脚、初始化变量或者启动通信端口
void setup() {
Serial.begin(115200); // 初始化串口通信,波特率为115200
Serial.println("ESP32 start!"); // 打印信息到串口,指示ESP32开始运行
pinMode(23, OUTPUT); // 将引脚23设置为输出模式,用于连接LED
u8g2.begin(); // 初始化u8g2库
u8g2.enableUTF8Print(); // 启用UTF-8打印
u8g2.clearBuffer(); // 清除u8g2缓冲区
u8g2.setFont(u8g2_font_10x20_me); // 设置字体为10x20
u8g2.setCursor(0, 13); // 设置光标位置
u8g2.print("esp start!"); // 在OLED上打印信息
u8g2.sendBuffer(); // 发送缓冲区的内容到OLED显示
}
// loop() 函数是Arduino程序的主要执行部分。一旦 setup() 函数执行完毕,Arduino将不断地在 loop() 函数中循环执行。
void loop() {
Serial.printf("Hello, ESP32![%d]\n", print_times++); // 打印信息到串口,显示ESP32的问候和循环次数
delay(500); // 延时500毫秒
digitalWrite(23, HIGH); // 将引脚23设置为高电平,点亮LED
delay(500); // 延时500毫秒
digitalWrite(23, LOW); // 将引脚23设置为低电平,熄灭LED
sprintf(str_buf, "times:%d", print_times); // 将循环次数格式化为字符串
u8g2.clearBuffer(); // 清除u8g2缓冲区
u8g2.setFont(u8g2_font_10x20_me); // 设置字体为10x20
u8g2.setCursor(0, 13); // 设置光标位置
u8g2.print(str_buf); // 在OLED上打印循环次数信息
u8g2.sendBuffer(); // 发送缓冲区的内容到OLED显示
}