查看: 181|回复: 1

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

[复制链接]
  • TA的每日心情
    开心
    2019-3-21 10:26
  • 签到天数: 316 天

    [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,你也可以参考一下他们的库。
    打赏作者鼓励一下!
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    BlinkerAT固件不能用
    BlinkerAT固件不能用
    如图,在配网的时候就卡住了,再发指令就没用了,固件和库都是今天刚下载的,以前的也不好
    为什么这个库已经装好了可是在调用的时候却没有显示
    为什么这个库已经装好了可
    为什么这个库已经装好了可是在调用的时候却没有显示求解决
    UART 传输(字符)不稳定,如何解决数据错位和乱码的情况
    UART 传输(字符)不稳定
    求助大家,我正在写一个 UART 传输多组数据的项目,想要将一端 Arduino 的多组数据通
    请问这是什么板子?
    请问这是什么板子?
    如图,两年前比赛学校发的,但网上找不到资料,现在翻出来,想问问有人知道它怎么用吗
    【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
    【原创】 drawbot平面关节
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表