(1)Arduino参考开源代码
- /*
- 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
- 程序四:显示U8Glib标志,以及Copyright(c)2022, eagler8@126.com
- 驱动库:https://github.com/olikraus/u8glib/
- Arduino------OLED屏
- 5V------------VCC
- GND-----------GND
- A4-----------SDA IIC 数据线
- A5-----------SCL IIC 时钟线
- */
-
- #include "U8glib.h"//导入驱动库
-
- // I2C / TWI 实例化
- U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0);
-
- void drawColorBox(void) {
- u8g_uint_t w, h;
- u8g_uint_t r, g, b;
-
- w = u8g.getWidth() / 32;
- h = u8g.getHeight() / 8;
- for ( b = 0; b < 4; b++ )
- for ( g = 0; g < 8; g++ )
- for ( r = 0; r < 8; r++ )
- {
- u8g.setColorIndex((r << 5) | (g << 2) | b );
- u8g.drawBox(g * w + b * w * 8, r * h, w, h);
- }
- }
-
- void drawLogo(uint8_t d) { //U8Glib标志LOGO
- #ifdef MINI_LOGO
-
- u8g.setFont(u8g_font_gdr17r);
- u8g.drawStr(0 + d, 22 + d, "U");
- u8g.setFont(u8g_font_gdr20n);
- u8g.drawStr90(17 + d, 8 + d, "8");
- u8g.setFont(u8g_font_gdr17r);
- u8g.drawStr(39 + d, 22 + d, "g");
-
- u8g.drawHLine(2 + d, 25 + d, 34);
- u8g.drawVLine(32 + d, 22 + d, 12);
-
- #else
- u8g.setFont(u8g_font_gdr25r);
- u8g.drawStr(0 + d, 30 + d, "U");
- u8g.setFont(u8g_font_gdr30n);
- u8g.drawStr90(23 + d, 10 + d, "8");
- u8g.setFont(u8g_font_gdr25r);
- u8g.drawStr(53 + d, 30 + d, "g");
-
- u8g.drawHLine(2 + d, 35 + d, 47);
- u8g.drawVLine(45 + d, 32 + d, 12);
- #endif
- }
-
- void drawURL(void) {
- #ifndef MINI_LOGO
- u8g.setFont(u8g_font_4x6);
- if ( u8g.getHeight() < 59 )
- {
- u8g.drawStr(53, 9, "Copyright(c)2022,");
- u8g.drawStr(77, 18, "eagler8@126.com");
- }
- else
- {
- u8g.drawStr(0, 54, "Copyright(c)2022,eagler8@126.com");//底下小字
- }
- #endif
- }
-
- void draw(void) {
- if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
- drawColorBox();
- }
- u8g.setColorIndex(1);
-
- if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g.getMode()) > 1 ) {
- drawLogo(2);
- u8g.setColorIndex(2);
- drawLogo(1);
- u8g.setColorIndex(3);
- }
- drawLogo(0);
- drawURL();
- }
-
- void setup(void) {
- }
-
- void loop(void) {
- u8g.firstPage();
- do {
- draw();
- u8g.setColorIndex(1);
- } while ( u8g.nextPage() );
- delay(200);
- }
复制代码
|