《Arduino》开发 之 用 u8g2 库给 0.96OLED 显示一个变量

问题:在使用arduino环境下 u8g2 库时,我们会遇到 显示变量 报错

开发环境:Arduino (1.8.10)     或     VScode 环境下 PlatformIO 插件

硬件:ESP8266  或   Arduino UNO  

接线:

1.ESP8266

ESP8266 NODEMCU  
gpio5 D1 SCL
gpio4 D2 SDA

2.Arduino UNO

 SDASCL是模拟口 A4 和 A5

 所用开发库: 2.25.10

错误用法:

#include 
#include 
#include 

U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

uint8_t a = 1;

void setup(void)
{
  u8g2.begin();
}

void loop(void)
{
  //*************************************第一种***********************************
  u8g2.firstPage();
  do
  {
    u8g2.setFont(u8g2_font_wqy16_t_gb2312a);
    u8g2.drawStr(109,11,a);//<--这里错误
  }
  while (u8g2.nextPage());
  //******************************************************************************

  delay(2000);

  //*************************************第二种***********************************
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_wqy16_t_gb2312a);
  u8g2.drawStr(109,11,a);//<--这里错误
  u8g2.sendBuffer();
  //*******************************************************************************

  
}

 

结果便是编译不通过:

《Arduino》开发 之 用 u8g2 库给 0.96OLED 显示一个变量_第1张图片

 

//*******************************************************************

 

正确方式:

#include 
#include 
#include 

U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

uint8_t a = 123;
uint16_t b = 456;

void setup(void)
{
  u8g2.begin();
}

void loop(void)
{
  //*************************************第一种***********************************
  u8g2.firstPage();
  do
  {
    u8g2.setFont(u8g2_font_wqy16_t_gb2312a);
    u8g2.setCursor(0,16);
    u8g2.print(a);
  }
  while (u8g2.nextPage());
  //******************************************************************************

  delay(2000);

  //*************************************第二种***********************************
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_wqy16_t_gb2312a);
  u8g2.setCursor(0,32);
  u8g2.print(b);
  u8g2.sendBuffer();
  //*******************************************************************************

  delay(2000);
}

《Arduino》开发 之 用 u8g2 库给 0.96OLED 显示一个变量_第2张图片

上传成功!!!

测试效果较为简单,自行实验查看~

你可能感兴趣的:(Arduino,开发教程)