#include
#include
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ 23, /* data=*/ 19, /* reset=*/ U8X8_PIN_NONE); //scl sda
void setup(void) {
u8g2.begin();
}
void drawLogo(void)
{
u8g2.setFontMode(1); // Transparent
#ifdef MINI_LOGO
u8g2.setFontDirection(0);
u8g2.setFont(u8g2_font_inb16_mf);
u8g2.drawStr(0, 22, "U");
u8g2.setFontDirection(1);
u8g2.setFont(u8g2_font_inb19_mn);
u8g2.drawStr(14,8,"8");
u8g2.setFontDirection(0);
u8g2.setFont(u8g2_font_inb16_mf);
u8g2.drawStr(36,22,"g");
u8g2.drawStr(48,22,"\xb2");
u8g2.drawHLine(2, 25, 34);
u8g2.drawHLine(3, 26, 34);
u8g2.drawVLine(32, 22, 12);
u8g2.drawVLine(33, 23, 12);
#else
u8g2.setFontDirection(0);
u8g2.setFont(u8g2_font_inb24_mf);
u8g2.drawStr(0, 30, "U");
u8g2.setFontDirection(1);
u8g2.setFont(u8g2_font_inb30_mn);
u8g2.drawStr(21,8,"8");
u8g2.setFontDirection(0);
u8g2.setFont(u8g2_font_inb24_mf);
u8g2.drawStr(51,30,"g");
u8g2.drawStr(67,30,"\xb2");
u8g2.drawHLine(2, 35, 47);
u8g2.drawHLine(3, 36, 47);
u8g2.drawVLine(45, 32, 12);
u8g2.drawVLine(46, 33, 12);
#endif
}
void drawURL(void)
{
#ifndef MINI_LOGO
u8g2.setFont(u8g2_font_4x6_tr);
if ( u8g2.getDisplayHeight() < 59 )
{
u8g2.drawStr(89,20,"github.com");
u8g2.drawStr(73,29,"/olikraus/u8g2");
}
else
{
u8g2.drawStr(1,54,"github.com/olikraus/u8g2");
}
#endif
}
void loop(void) {
u8g2.clearBuffer();
drawLogo();
drawURL();
u8g2.sendBuffer();
delay(1000);
}
此处使用的是SSD1306库和Adafruit_SSD1306是有区别的
#include "SSD1306.h"
SSD1306 display(0x3c, 19, 23); //address sda scl
void setup() {
display.init();
display.setFont(ArialMT_Plain_24);
display.drawString(0, 0, "Hello World");
display.display();
delay(1000);
}
void loop(void) {
}
esp32以及esp8266使用的均为软件iic,在硬件管脚中并没有明确的注明iic具体位置,在开发时,我们可以使用esp32或者esp8266的GPIO引脚充当iic引脚。