ESP32C3和ESP8266通过u8g2库使用0.96寸OLED对比

在淘宝上买了一款ESP32C3 mini板,想用它显示OLED屏幕,但却发现显示帧率太低了,此时ESP32C3 mini板的cpu频率为160mhz。

void MenuShow(U8G2_SSD1306_128X64_NONAME_F_SW_I2C& myoled){
    myoled.clearBuffer();
    myoled.setCursor(50,20);
    myoled.printf("%d",millis()-t);
    t = millis();
    myoled.sendBuffer();
}

最后发现一帧屏幕居然要花费450ms!一开始我还以为是软件问题,在网上没有找到答案。最后想着是不是硬件问题,于是我把一摸一样的代码烧进了esp8266中,发现速度提高了很多。

在cpu频率为80mhz时,屏幕刷新频率为185ms左右。

于是我又尝试把cpu频率提高到160mhz,屏幕刷新频率为115ms左右。

最后,初步排除是软件的问题,但是还是不明白为什么esp32c3迷你板在执行相同代码时,要比esp8266慢这么多。

### ESP32-C3 使用 U8G2 驱动 1.5 OLED 的配置指南 #### 关于硬件支持 ESP32-C3 是一款基于 RISC-V 架构的微控制器,具有低功耗高性价比的特点。它可以通过 I2C 或 SPI 接口连接到 OLED 显示屏上[^1]。U8G2 是一个功能强大的 Arduino 图形,能够轻松实现对多种单色彩色 OLED/LCD 屏幕的支持。 #### 软件环境准备 为了使 ESP32-C3 支持 U8G2 并驱动 1.5 英 OLED,需完成以下准备工作: - 安装最新版本的 Arduino IDE。 - 添加 ESP32 开发板支持至 Arduino IDE 中。具体方法可参考官方文档。 - 下载并安装 U8G2 。通过 Arduino IDE 的管理器搜索 `U8g2` 并安装该。 #### 示例代码展示 以下是针对 ESP32-C3 1.5 英 OLED 的基本示例代码: ```cpp #include <Arduino.h> #include <Wire.h> // For I2C communication #include <SPI.h> // For SPI communication (if needed) #include <U8g2lib.h> // Include the U8g2 library // Define the display type and connection method. // Replace with your specific model if different from SSD1306 U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SDA, /* data=*/ SCL); void setup() { Serial.begin(115200); // Initialize the display u8g2.begin(); } void loop() { u8g2.firstPage(); do { // Draw text on the screen u8g2.setFont(u8g2_font_ncenB08_tr); // Set font to a basic one u8g2.drawStr(0, 10, "Hello ESP32-C3!"); // Print string at position (0,10) // Add more drawing commands here as required by application } while (u8g2.nextPage()); delay(1000); // Refresh every second } ``` 上述代码展示了如何初始化一个基于软件 I2C 的 128×64 像素分辨率屏幕,并显示简单的字符串消息。 #### 注意事项 - 如果使用的是其他型号的显示屏,则需要调整对应的构造函数参数来匹配实际使用的芯片组(如 SH1106)。 - 对于某些特定模块可能还需要额外设置 GPIO 引脚映射关系或者修改默认地址值以适配不同的硬件接口标准。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值