注意:用ESP32_C3时会出现编译错误,下面给出解决办法。
错误信息:error: 'Wire1' was not declared in this scope; did you mean 'Wire'?
显示屏和该库的详细使用教程请参考本人另一篇文章:使用Arduino开发ESP32:(详解)IIC接口控制SH1106、SSD1306或SSD1315驱动的OLED显示屏
准备
直接从库管理中下载:
ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays
从文件 -> 示例 -> ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays -> SSD1306SimpleDemo,打开该示例。
根据驱动型号注释或取消注释相应的#include,SSD1306和SSD1315驱动都选择SSD1306,SH1106就选择SH1106。(上面是示例文件,可以直接将相应的#include复制的自己的文件中)
进行编译,会发现出现上述错误信息。
报错原因
ESP32_C3只有一个IIC,此时在库中并没有定义Wire1,因此报错。
解决办法
方案一:直接修改库文件,显然这并不是一个好办法。
方案二:
在.ino文件第一行加入如下代码
#define SOC_HP_I2C_NUM 2
强行定义IIC数量为2,即可正常使用该库。