查看: 480|回复: 1

ARDUINO:ESP32 + ILI9431 SPI TFT液晶屏静态展示图片

[复制链接]
  • TA的每日心情
    无聊
    2019-5-10 08:20
  • 签到天数: 322 天

    [LV.8]以坛为家I

    发表于 2019-3-13 20:27 | 显示全部楼层 |阅读模式
    无标题.jpg

    库:Arduino IDE 库管理中搜索 TFT_eSPI。或者手动下载:https://github.com/Bodmer/TFT_eSPI
    接线方法稍后再说。库装成功后转到 C:\Users\<用户>\Documents\Arduino\libraries\TFT_eSPI-master (路径仅供参考)

    修改User_Setup.h,注释掉以下内容:
    #define TFT_CS   PIN_D8  // Chip select control pin D8
    #define TFT_DC   PIN_D3  // Data Command control pin
    #define TFT_RST  PIN_D4  // Reset pin (could connect to NodeMCU RST, see next line)

    找到这句,并反注释以下#define:
    // For ESP32 Dev board (only tested with ILI9341 display)
    // The hardware SPI can be mapped to any pins
    #define TFT_MISO 19
    #define TFT_MOSI 23
    #define TFT_SCLK 18
    #define TFT_CS   15  // Chip select control pin
    #define TFT_DC    2  // Data Command control pin
    #define TFT_RST   4  // Reset pin (could connect to RST pin)

    看到这段话应该也明白了吧,它其实也是接线指南。

    TFT屏的LED引脚可以串一个100欧姆左右的电阻后连接Vcc。(不确定电阻不接是否会伤屏)

    代码扒自参考库自带的 Generic -> TFT_FLASH_BITMAP。

    #include <TFT_eSPI.h>       // Hardware-specific library
    TFT_eSPI tft = TFT_eSPI();  // Invoke custom library
    #include "Close.h"
    long count = 0; // Loop count
    void setup()
    {

      tft.begin();
      tft.setRotation(1); // landscape
      tft.fillScreen(TFT_BLACK);
      // Swap the colour byte order when rendering
      tft.setSwapBytes(true);
      // Draw the icons
      //tft.pushImage(0, 0, infoWidth, infoHeight, info);
      tft.pushImage(0,0,closeWidth,closeHeight,closeX);

      // Pause here to admire the icons!
      delay(2000);
    }

    图像代码直接在示例里的Close.h里改了,用图片取模工具生成C代码。(我用的是ImageConverter565)

    #include <pgmspace.h>
    // Icon width and height
    const uint16_t closeWidth = 156;
    const uint16_t closeHeight = 153;
    const unsigned short  closeX[0x5D3C] PROGMEM={
    0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF,   // 0x0010 (16)
    0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xF79E, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFDF, 0xF79E,   // 0x0020 (32)
    0xFFDF, 0xFFFF, 0xEF5D, 0xF79E, 0xFFFF, 0xF7BE, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF79E, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,   // 0x0030 (48)
    0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,   // 0x0040 (64)
    0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,   // 0x0050 (80)
    .......
    };

    编译,烧录,,,
    ohyeah.jpg
    打赏作者鼓励一下!
  • TA的每日心情
    擦汗
    2019-2-26 12:00
  • 签到天数: 263 天

    [LV.8]以坛为家I

    发表于 2019-3-15 10:21 | 显示全部楼层
    赞!
    M5stack用的就是esp32+9431,你也可以参考一下他们的库。
    打赏作者鼓励一下!
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    LCD1602液晶屏不显示
    LCD1602液晶屏不显示
    Arduino连的LCD1602,程序显示上传成功,但是液晶屏是不显示字符,背景灯亮,是怎么回
    【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
    【原创】 drawbot平面关节
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
    开贴讲讲NRF24L01P,让你彻底搞懂它的工作原理,持续更...
    开贴讲讲NRF24L01P,让你
    *****************************************更贴码字很多,很容易触发论坛人工审核机
    能够与arduino结合的嵌入式视觉识别模块
    能够与arduino结合的嵌入
    该视觉识别模块是我司于2018年新推出的产品,处理器采用双核MCU,面向创客以及steam教
    无线遥控四个灯泡
    无线遥控四个灯泡
    我有一个遥控器,一个接收板,还有四个灯泡,不知道如何连接在一起,然后控制灯亮
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表