U8g2显示BMP图片 PCtoLCD2002取模 您所在的位置:网站首页 dome软件怎么显示图像 U8g2显示BMP图片 PCtoLCD2002取模

U8g2显示BMP图片 PCtoLCD2002取模

2024-07-10 15:34| 来源: 网络整理| 查看: 265

本文将介绍如何使用U8g2显示BMP图像。

1. 准备工作 目标图片文件取模工具ESP8266-12F开发板ST7567驱动128X64屏幕面包板杜邦线若干

PCtoLCD2002取模工具及示例代码下载地址

2. 制作过程 用杜邦线将ESP8266开发板、屏幕、面包板连接在一起,做好准备工作 示例中的屏幕和ESP8266引脚的连接关系图 屏幕引脚ESP8266引脚备注CSD8片选引脚RESD4复位引脚RSD6SPI数据控制引脚SCLD5SPI时钟引脚SID7SPI数据信息引脚VDD3.3V接开发板3.3V电源VSSGND接开发板GNDBLA3.3V屏幕背光电源BLKGND屏幕背光接地IC_SCLIC_CSIC_SOIC_SI

因为这个屏幕带有背光电源,因此需要将背光电源也同时接电。如果只给背光电源接电而屏幕电源不接,那么屏幕显示过程中会不稳定。有关于此屏幕的介绍请看另一篇文章:Arduino驱动LED128X64 - U8g2 自定义中文字库,在这篇文章中,会同时介绍如何自定义中文字库。 2. 准备一张BMP图片 例如我们使用这张图片作为示例 示例图片,格式bmp

使用取模工具对图片进行取模操作 打开取模工具PCToLCD2002完美版 点击选择图片 点击选择图片 点击设置进行参数设置 点击设置进行参数设置 确认参数一致 确认参数一致 点击“生成字模”按钮,将会看到取模后的信息,如下:

0x80,0x01,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0xF0,0xE0,0xFF,0x00,0x00,0x3F, 0xF8,0xFF,0x07,0x00,0x7F,0xFE,0xFF,0x0F,0x00,0xE3,0xFF,0xFF,0x3F,0x00,0x80,0xFF, 0xFF,0x7F,0x00,0xC0,0xFF,0xFF,0x7F,0x00,0xE0,0xFF,0xFF,0xFF,0x00,0xF0,0xFF,0xFF, 0xFF,0x01,0xF0,0xFF,0xFF,0xFF,0x03,0xF8,0xFF,0xFF,0xFF,0x03,0xF8,0xFF,0xFF,0xFF, 0x03,0xFC,0xFF,0xFF,0xFF,0x07,0xFC,0x7F,0x40,0xFF,0x07,0xFE,0x01,0x00,0xF8,0x07, 0x1E,0x00,0x00,0x00,0x07,0x00,0x1C,0x00,0x03,0x00,0x00,0x3C,0x80,0x07,0x00,0x00, 0x76,0xC0,0x1D,0x00,0x00,0x76,0xC0,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00, 0x00,0x00,0x07,0xFC,0x01,0x00,0xF0,0x07,0xFC,0x1F,0x00,0xFF,0x07,0xFC,0x1F,0x00, 0xFF,0x07,0xF8,0x7F,0x80,0xFF,0x07,0xF8,0xFF,0xE0,0xFF,0x03,0xF0,0xFF,0xFF,0xFF, 0x03,0xF0,0xFF,0xFF,0xFF,0x01,0xE0,0xFF,0xFF,0xFF,0x00,0xC0,0xFF,0xFF,0xFF,0x00, 0x80,0xFF,0xFF,0x7F,0x00,0x00,0xFF,0xFF,0x3F,0x00,0x00,0xFE,0xFF,0x0F,0x00,0x00, 0xF8,0xFF,0x07,0x00,0x00,0xE0,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00

编写代码 #include #include #include #include #include #ifdef U8X8_HAVE_HW_SPI #include #endif #ifdef U8X8_HAVE_HW_I2C #include #endif #define CS D8 #define RES D4 #define DC D6 #define SCK D5 #define DATA D7 //这里务必根据您的屏幕驱动,选择正确的构造函数 //如何选择,请参照https://github.com/olikraus/u8g2/wiki/u8g2setupcpp U8G2_ST7567_ENH_DG128064I_1_4W_SW_SPI u8g2(U8G2_MIRROR, /* clock=*/ SCK, /* data=*/ DATA, /* cs=*/ CS, /* dc=*/ DC, /* reset=*/ RES); u8g2_uint_t U8X8_PROGMEM screenWidth; u8g2_uint_t U8X8_PROGMEM screenHeight; bool U8X8_PROGMEM isLoading = false; //哈皮玩Logo // width: 35, height: 38 const unsigned char logo[] U8X8_PROGMEM = { 0x80,0x01,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0xF0,0xE0,0xFF,0x00,0x00,0x3F, 0xF8,0xFF,0x07,0x00,0x7F,0xFE,0xFF,0x0F,0x00,0xE3,0xFF,0xFF,0x3F,0x00,0x80,0xFF, 0xFF,0x7F,0x00,0xC0,0xFF,0xFF,0x7F,0x00,0xE0,0xFF,0xFF,0xFF,0x00,0xF0,0xFF,0xFF, 0xFF,0x01,0xF0,0xFF,0xFF,0xFF,0x03,0xF8,0xFF,0xFF,0xFF,0x03,0xF8,0xFF,0xFF,0xFF, 0x03,0xFC,0xFF,0xFF,0xFF,0x07,0xFC,0x7F,0x40,0xFF,0x07,0xFE,0x01,0x00,0xF8,0x07, 0x1E,0x00,0x00,0x00,0x07,0x00,0x1C,0x00,0x03,0x00,0x00,0x3C,0x80,0x07,0x00,0x00, 0x76,0xC0,0x1D,0x00,0x00,0x76,0xC0,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00, 0x00,0x00,0x07,0xFC,0x01,0x00,0xF0,0x07,0xFC,0x1F,0x00,0xFF,0x07,0xFC,0x1F,0x00, 0xFF,0x07,0xF8,0x7F,0x80,0xFF,0x07,0xF8,0xFF,0xE0,0xFF,0x03,0xF0,0xFF,0xFF,0xFF, 0x03,0xF0,0xFF,0xFF,0xFF,0x01,0xE0,0xFF,0xFF,0xFF,0x00,0xC0,0xFF,0xFF,0xFF,0x00, 0x80,0xFF,0xFF,0x7F,0x00,0x00,0xFF,0xFF,0x3F,0x00,0x00,0xFE,0xFF,0x0F,0x00,0x00, 0xF8,0xFF,0x07,0x00,0x00,0xE0,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; void setup(){ Serial.begin(9600); u8g2.begin(); u8g2.enableUTF8Print(); screenWidth = u8g2.getDisplayWidth(); screenHeight = u8g2.getDisplayHeight(); showLoading(); WiFi.begin("WIFI名称", "WIFI密码");//请替换成您环境中的真实信息 while(WiFi.status() != WL_CONNECTED){ delay(500); } isLoading = true; } void loop(){ if (isLoading){ showStrCenter("Loading Complete."); delay(1000); showWiFi(); isLoading = false; } delay(200); } void showLoading(){ u8g2.firstPage(); do{ u8g2.drawXBM(10, 13, 35, 38, logo); u8g2.setFont(u8g2_font_helvR08_tr); char* str = "Loading..."; u8g2_uint_t width = u8g2.getStrWidth(str); u8g2.drawStr(50, 40, str); }while(u8g2.nextPage()); } //正在加载 void showStrCenter(char* str){ u8g2.firstPage(); do{ u8g2.setFont(u8g2_font_helvR08_tr); u8g2_uint_t width = u8g2.getStrWidth(str); u8g2_uint_t x = (screenWidth - width) / 2; u8g2_uint_t y = screenHeight / 2; u8g2.drawStr(x, y, str); }while(u8g2.nextPage()); } void showWiFi(){ u8g2.firstPage(); do{ u8g2.setFont(u8g2_font_helvR08_tr); u8g2.drawStr(0, 12, ("Connected to: " + WiFi.SSID()).c_str()); u8g2.drawStr(0, 24, ("IP Address:" + WiFi.localIP().toString()).c_str()); }while(u8g2.nextPage()); } 执行效果 在这里插入图片描述


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有