ESP8266-NodeMCU——SW/HW SPI点亮OLED(使用U8g2库)
ESP8266引脚介绍
7线OLED引脚图
接线图
接线时注意区分GPIOx和Dx标号,代码中使用的是GPIOx
1 | OLED | GPIOx | Dx |
---|---|---|---|
2 | GND | GND | GND |
3 | VCC | VCC | VCC |
4 | D0 | GPIO14 | D5 |
5 | D1 | GPIO13 | D7 |
6 | RES | GPIO4 | D2 |
7 | DC | GPIO5 | D1 |
8 | CS | GPIO2 | D4 |
代码
/*
* 软件模拟7线SPI/硬件SPI OLED
*7线是指GND,VCC,D0(CLK),D1(DIO),RSET,DC,CS
* 点亮屏幕输出字符和汉字hello OLED
*/
#include <Arduino.h>
#include <U8g2lib.h>
//Full screen buffer mode用带F的全屏缓存模式
//软件(模拟)SPI 自选普通GPIO+
//U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 14, /* data=*/ 13, /* cs=*/ 2, /* dc=*/ 5, /* reset=*/ 4);
//硬件spi:注意D0(CLK)接HSCLK(GPIO14 D5),D1(DIO)接HMOSI(GPIO13 D7),其他引脚如下自选普通GPIO
U8G2_SSD1306_128X64_NONAME_F_4W_HW_SPI u8g2(U8G2_R2, /* cs=*/ 2, /* dc=*/ 5, /* reset=*/ 4); // Arduboy (Production, Kickstarter Edition)
//U8G2_SSD1306_128X64_NONAME_F_HW_I2C
void setup(void) {
Serial.begin(115200);
u8g2.begin();
u8g2.enableUTF8Print(); // enable UTF8 support for the Arduino print() function
u8g2.setFont(u8g2_font_unifont_t_chinese2); // u8g2_font_unifont_t_chinese2使用这个字体可以显示中文 "你好 OLED"
u8g2.setFontDirection(0);
u8g2.clearBuffer();
u8g2.drawStr(0,15,"Hello OLED");
u8g2.setCursor(0, 40);//中文显示需要用这种方式,设置坐标
u8g2.print("你好,OLED"); // u8g2.print("需要显示的文字")
u8g2.sendBuffer();
Serial.println("hello !");
delay(1000);
}
void loop(void) {
}
显示效果