arduino串口发送数据显示到OLED上

代码如下,调试风格。。

#include 
#include 
#include 

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  delay(500);
  //初始化I2C地址0X3C
  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3D (for the 128x64)
  // init done

  display.setTextSize(1);     //设置字体大小
  display.setTextColor(WHITE);  //设置字体颜色
  display.setCursor(0,0);      //设置起始光标
  display.clearDisplay();
  display.println("HELLO OLED");
  display.display();
  delay(2000);
  display.clearDisplay();
}
String a="";
void loop() {
  // put your main code here, to run repeatedly:
  // invert the display
  if(Serial.available()>0) 
  {
    char val=Serial.read();
    a+=val;
    if(val=='\n'){
       display.clearDisplay();
//       display.display();
//       display.setTextSize(1);     //设置字体大小
//       display.setTextColor(WHITE);  //设置字体颜色
       display.setCursor(0,0);      //设置起始光标
       display.print(a);
       display.display();
       Serial.println("got");
       a="";
    }
    }
//  delay(1000);
}

关键是用"\n"检测是否发送完毕,将串口read的字符拼接成为字符串,然后通过display发送到液晶屏,可以实现实时显示。

液晶屏用的SSD1306的128*64点阵。

你可能感兴趣的:(UNO)