zoukankan      html  css  js  c++  java
  • U8g2库I2C总线再次突破性调试成功

    这次采用U8X8的方式,不再采用u8g2,因为后者一直报内存问题。所以采用了不占内存的u8x8模式

    同时u8g2库文件的示例代码也是很牛逼的,

    里面还有message box 非常的可爱运行效果也非常棒!

    代码如下

     1 #include <Arduino.h>
     2 #include <U8x8lib.h>
     3 
     4 #ifdef U8X8_HAVE_HW_SPI
     5 #include <SPI.h>
     6 #endif
     7 U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(/* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);   // OLEDs without Reset of the Display
     8 void setup(void)
     9 {
    10   //u8x8.begin();//可以定义按键如下
    11   u8x8.begin(/*Select=*/ 7, /*Right/Next=*/ A1, /*Left/Prev=*/ A2, /*Up=*/ A0, /*Down=*/ A3, /*Home/Cancel=*/ 8);  
    12 
    13   u8x8.setPowerSave(0);
    14 }
    15 void loop(void)
    16 {
    17   /*u8x8.setFont(u8x8_font_chroma48medium8_r);
    18   u8x8.drawString(0,0,"Hello World!");
    19   u8x8.refreshDisplay();
    20   delay(2000);*/
    21 
    22    uint8_t r;  
    23   u8x8.setFont(u8x8_font_chroma48medium8_r);  
    24   r = u8x8_UserInterfaceMessage(u8x8.getU8x8(), "Message", "Box", NULL, " Ok 
     Cancel ");  
    25   if ( r == 0 )  
    26   {  
    27     u8x8.userInterfaceMessage("You pressed the", "Home/Quit", "Button", " Ok ");    
    28   }  
    29   else if ( r == 1 )  
    30   {  
    31     u8x8.userInterfaceMessage("You selected the", "Ok", "Button", " Ok ");    
    32   }  
    33   else if ( r == 2 )  
    34   {  
    35     u8x8.userInterfaceMessage("You selected the", "Cancel", "Button", " Ok ");    
    36   }  
    37 }

    再也没有出现之前的动不动就报内存不足的问题。

    同时还可以自己生成位图进行显示,比如二维码,不过,识别起来很吃力

    代码如下

     1 #include <SPI.h>  
     2 #include <Wire.h>  
     3 #include <Adafruit_GFX.h>  
     4 #include <Adafruit_SSD1306.h>  
     5   
     6 #define OLED_RESET 4  
     7 Adafruit_SSD1306 display(OLED_RESET);  
     8   
     9 static const unsigned char PROGMEM logo[] =  
    10 {   
    11 0x9F,0xFE,0x6C,0x38,0xFF,0x6F,0xFF,0xFE,0xBF,0xFE,0x6C,0x38,0xFF,0x6F,0xFF,0xFE,
    12 0xFF,0xFF,0xEF,0xB8,0xFF,0x7F,0xFF,0xFE,0xBF,0xFF,0xFF,0x9F,0xFF,0x7F,0x1F,0xFE,
    13 0xFF,0xDF,0x39,0x9F,0xBE,0x7F,0x1F,0xFE,0xFF,0xFF,0x3D,0xFF,0xBF,0x7F,0xFF,0xFE,
    14 0xFF,0xFF,0xFD,0xFE,0xFF,0xCF,0xFF,0xFE,0xFE,0xF7,0xCD,0x9E,0xF7,0xCF,0x9F,0xF2,
    15 0xFF,0x7D,0x8D,0xBE,0xF7,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xB7,0xFF,0xFF,0xFE,
    16 0xFF,0xFF,0xFF,0xDB,0xB7,0xFF,0xFF,0xFE,0xFF,0xEF,0xF7,0xFB,0xBF,0xFF,0xFF,0xFE,
    17 0x36,0xFF,0xFF,0xF3,0xFF,0xFF,0xFF,0xFE,0x36,0xF3,0xFC,0xC3,0xF7,0x3F,0xFF,0xFE,
    18 0xF7,0xE5,0xFF,0xFF,0xF7,0x3F,0xFF,0xFE,0xF7,0x81,0xFF,0x3E,0xF6,0x00,0x36,0x0E,
    19 0xF8,0x73,0xF9,0xBF,0xD8,0x6C,0xE7,0xFE,0xFF,0xFF,0xFF,0xFF,0xD8,0x6F,0xF7,0xFE,
    20 0xF7,0x8F,0xE5,0xDF,0x80,0x07,0xF6,0x00,0x3F,0xF8,0x3F,0xD8,0xDF,0x3F,0x3E,0xD8,
    21 0xFF,0xFE,0x3F,0xFE,0xFF,0x3F,0xFE,0xD8,0xFC,0x0E,0x0C,0x3E,0x36,0x00,0xFE,0xC0,
    22 0x36,0xFF,0x6C,0xFB,0xBF,0x6F,0x3F,0x8E,0x37,0xFF,0xFC,0xFF,0xFF,0xFF,0x3F,0xFE,
    23 0x37,0xDF,0xFC,0x3F,0xFF,0xFC,0x3F,0xFC,0xFE,0xF3,0xED,0xB7,0xB3,0x0D,0xFF,0xF0,
    24 0xFE,0xEF,0xEF,0xFF,0xB7,0x0F,0xFF,0xF0,0xF4,0xCE,0x07,0xFE,0x36,0x03,0xFE,0x70,
    25 0x1F,0xE1,0xFF,0xB6,0xF6,0xF8,0xE6,0xD8,0x1F,0xE3,0xFF,0xF6,0xF7,0xFF,0xE7,0xD8,
    26 0x06,0x03,0x7F,0xC6,0x03,0x67,0xE3,0x80,0xFE,0xF3,0x0D,0xF3,0xB6,0x6D,0xBF,0xF0,
    27 0xFF,0xFF,0xFD,0xF3,0xBF,0xFF,0xFF,0xF8,0x07,0x9F,0xFD,0x83,0xBF,0xFF,0xE3,0x98,
    28 0x36,0x7E,0x6F,0xFB,0x86,0x6F,0xFF,0x8E,0xF6,0x7E,0x6F,0xFF,0x87,0x7F,0xFF,0x8E,
    29 0xE0,0x00,0x67,0xC6,0x03,0x3F,0xF7,0x80,0x33,0xFF,0xFF,0x00,0xDE,0x3F,0xF0,0xDE,
    30 0xFB,0xFF,0xFF,0xFE,0xFE,0x3F,0xFE,0xDE,0xFC,0x0E,0x07,0xFE,0xF6,0x0F,0xFE,0xCE,
    31 0xF6,0x7F,0x6C,0x3B,0xBE,0x6D,0xBF,0xFE,0xF7,0xFF,0xEC,0x3F,0xFF,0xED,0xBF,0xFE,
    32 0x33,0xDE,0x6C,0x1F,0xFF,0xCC,0x1C,0xFE,0xFE,0xF0,0x4D,0xBB,0xB7,0xED,0x87,0xF0,
    33 0xFE,0xEF,0xED,0xFF,0xF3,0xEF,0xFF,0xFE,0xFC,0xCE,0x0C,0xFE,0xC2,0x07,0xFE,0xCE,
    34 0xFF,0xE3,0xFF,0xF6,0xC3,0xFF,0xB6,0xF0,0xFF,0xE3,0xFF,0xF7,0xC3,0xFF,0xFE,0xF8,
    35 0xF8,0x03,0x7F,0xF3,0x83,0x7F,0xFE,0xD8,0xFE,0xF3,0xFF,0xFF,0xB3,0xFF,0xFF,0x98,
    36 0xF6,0xFF,0xEF,0x9F,0xB7,0xED,0xFF,0xF8,0x00,0x0E,0x6F,0x1B,0xB7,0x6D,0xE3,0xF8,
    37 0xFF,0xFF,0xFE,0x3B,0xB7,0xFF,0xFF,0xF8,0xFF,0xFF,0xFE,0x3E,0xDB,0xFF,0xFF,0xFE,
    38 0xE0,0x5F,0x77,0x1E,0xDB,0xFF,0xE3,0xFE,0xFF,0xF7,0x7F,0xBF,0xDB,0xFF,0xFF,0xFE,
    39 0xFF,0xFF,0x7F,0xFB,0xDB,0xFF,0xFF,0xF8,0xFF,0xFF,0x7F,0xC3,0xD8,0x07,0xFC,0xD8,
    40 0xFF,0xFF,0x7F,0xC3,0xFB,0xFF,0xFF,0xF8,0xFF,0xFF,0x79,0x9B,0xFF,0xFC,0x7F,0xF8,
    41 0xE0,0x7F,0x61,0x9B,0x9F,0x6C,0xFF,0xD8,0xF7,0xFF,0xFD,0x9B,0xDF,0xFC,0x7F,0xD8,
    42 0xFF,0xE1,0xFC,0x00,0xC7,0xFC,0x00,0x00/*"C:UsersAdministratorDesktop6464qrco000000000de_15134800003995111111111111111827.bmp",0*/};  
    43     
    44 #if (SSD1306_LCDHEIGHT != 64)  
    45 #error("Height incorrect, please fix Adafruit_SSD1306.h!");  
    46 #endif  
    47   
    48 void setup()   {                  
    49   Serial.begin(9600);  
    50   display.begin(SSD1306_SWITCHCAPVCC, 0x3C);   
    51   display.clearDisplay();  
    52    display.drawBitmap(0, 0, logo, 64, 64, 1); 
    53 }  
    54   
    55 void loop() {  
    56   //display.drawBitmap(0, 0, logo, 64, 64, 1);  //在坐标X0,Y0的位置开始显示图片  
    57                                                //128是取模软件显示的宽度  
    58                                                //64是取模软件显示的高度  
    59  // display.display();                           //把缓存的都显示  
    60   //delay(1);  
    61     
    62  // display.clearDisplay();     //清除屏幕  
    63 }  

     

    @青山不移,文笔不息。学习,坚持,梦想青春!
  • 相关阅读:
    XJ20夏令营做题记录(长期更新)
    洛谷P6623——[省选联考 2020 A 卷] 树
    [游记] 2020ZJOI 爆零记
    CF1017G——The Tree
    CF715E—— Complete the Permutations
    学习笔记——树的初步整理
    学习笔记——DP初步整理
    洛谷P5290——春节十二响
    POJ3017——Cut the Sequence(单调队列+堆优化DP)
    Java控制整形输入的法子
  • 原文地址:https://www.cnblogs.com/pengwenzheng/p/8052430.html
Copyright © 2011-2022 走看看