金逸晨OLED,在nodeMCU下试了各种办法,都无法点亮屏幕,都怀疑屏幕是坏的。
经过反复努力,终于成功了。试用了Adafruit_SSD1306,ssd1306xled库都无法点亮。
nodeMCU连线 :
SDA -> D1 #4,
SCK -> D2 #5
VDD #3.3V
GND #接地
#include <U8g2lib.h>
#define LED 16 /* 板载LED选择 */
#define BUTTON 0 /* 板载按键选择,这里选择的是板上的Flash(Boot)按键作为扫描键 */
int ssids = 0;
bool networkfound = false;
const char *ssid = "TP-LINK_18A4"; /* 你的SSID */
const char *password = "jse105724482"; /* 你的密码 */
int state = 0; /* 0:正常运行 1:OTA升级模式 */
/* OLED构造函数,按需修改即可 */
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2( U8G2_R0, /* clock=*/ 4, /* data=*/ 5, /* reset=*/ U8X8_PIN_NONE );
typedef enum {
BUTTON_CLICK,
BUTTON_LONG_PRESS,
BUTTON_NOT_PRESSED
} buttonState;
struct wifis_t {
String ssid;
String encryption;
int rssi;
};
void setup() {
/* 初始化开发板 */
pinMode( LED, OUTPUT );
digitalWrite( LED, HIGH ); /* 本人开发板上的LED是低电平触发,所以将LED脚拉高,请按需选择 */
u8g2.setFont( u8g2_font_wqy12_t_gb2312 );
u8g2.begin();
u8g2.enableUTF8Print();
displayWelcome(); /* 显示欢迎语,可去除 */
delay( 100 );
}
void loop() {
// put your main code here, to run repeatedly:
}
void displayWelcome() {
char *str = "正在启动...";
u8g2.clearBuffer();
/* 将字符串显示在屏幕中央 */
u8g2.drawUTF8( u8g2.getDisplayWidth() / 2 - u8g2.getUTF8Width( str ) / 2, u8g2.getDisplayHeight() / 2 + u8g2.getMaxCharHeight() / 2, str );
u8g2.sendBuffer();
/* while(1); */
}