3.5寸 TFT ILI9486

元器件
显示屏
库存 250

介绍

3.5英寸TFT彩色LCD,驱动IC ILI9486,480×320(HVGA)分辨率,SPI(可选8/16位并口)接口,262K色,标配电阻触摸和SD卡槽,高分辨率适合复杂GUI、工业仪表、智能家居中控屏

规格参数

参数
供电3.3V(逻辑) + 5V(背光)
尺寸3.5英寸
接口SPI + 可选8/16位并口
背光6×白光LED
触摸XPT2046电阻触摸
颜色262K色(16.7M色扩展)
驱动ICILI9486
SPI速率最高32MHz
分辨率480×320
对比度350:1
可视角度~160°
外形尺寸100mm×57mm
工作温度-20°C~70°C
显示区域73.4mm×49mm

代码例程

3.5寸TFT ILI9486 多平台代码例程.md

# 3.5寸TFT ILI9486 多平台代码例程

---

## Arduino Mega (MCUFriend — 并口模式)

```cpp
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;

void setup() {
  uint16_t ID = tft.readID();
  tft.begin(ID);
  tft.setRotation(1); // 480x320 横屏
  tft.fillScreen(TFT_BLACK);
  
  // 仪表盘背景
  tft.fillRoundRect(10, 10, 460, 300, 20, TFT_DARKGREY);
  
  // 标题
  tft.setTextColor(TFT_WHITE);
  tft.setTextSize(3);
  tft.setCursor(120, 20);
  tft.println("ILI9486 3.5\"");
  
  // 图表区域模拟
  for(int x=30; x<450; x+=10) {
    int h = random(50, 200);
    tft.fillRect(x, 300-h, 9, h, TFT_GREEN);
  }
  
  tft.drawLine(30, 300, 450, 300, TFT_WHITE); // 基线
}

void loop() {}
```

---

## ESP32 (TFT_eSPI — SPI模式)

```cpp
// User_Setup.h:
// #define ILI9486_DRIVER
// #define TFT_WIDTH 480 #define TFT_HEIGHT 320
// #define SPI_FREQUENCY 40000000
// TFT_CS=15, TFT_DC=2, TFT_RST=4, TFT_MOSI=23, TFT_SCLK=18

#include <TFT_eSPI.h>
TFT_eSPI tft = TFT_eSPI();

void setup() {
  tft.init();
  tft.setRotation(1);
  tft.fillScreen(TFT_BLACK);
  
  // 渐变背景
  for(int i=0; i<480; i++) {
    tft.drawFastVLine(i, 0, 320, 
      tft.color565(i*255/480, 64, 255-i*255/480));
  }
  
  // 半透明卡片
  tft.fillRoundRect(40, 40, 400, 240, 15, TFT_NAVY);
  tft.setTextColor(TFT_WHITE, TFT_NAVY);
  tft.drawString("ESP32 + ILI9486", 60, 60, 4);
  tft.drawString("480x320 SPI Mode", 60, 100, 2);
  tft.drawString("Vibe Electronics", 60, 140, 2);
}

void loop() {
  // 动态时间
  static uint32_t last=0;
  if(millis()-last>1000) {
    last=millis();
    tft.setTextColor(TFT_YELLOW, TFT_NAVY);
    tft.drawString("Uptime: " + String(last/1000) + "s", 60, 200, 2);
  }
}
```

---

## STM32F4 (FSMC 16位并口 — 高速刷新)

```c
// STM32 FSMC 16位并口驱动
// FSMC NE1接CS, A0接DC, 数据D0-D15

#define ILI9486_BASE ((uint32_t)0x60000000)
#define ILI9486_CMD  (*(__IO uint16_t*)ILI9486_BASE)
#define ILI9486_DATA (*(__IO uint16_t*)(ILI9486_BASE + (1<<17)))

void ili9486_write_cmd(uint16_t cmd) {
    ILI9486_CMD = cmd;
}

void ili9486_write_data(uint16_t data) {
    ILI9486_DATA = data;
}

void ili9486_init(void) {
    // FSMC配置...
    ili9486_write_cmd(0x01); // SW Reset
    HAL_Delay(150);
    ili9486_write_cmd(0x11); // Sleep Out
    HAL_Delay(150);
    ili9486_write_cmd(0x3A); // Pixel Format
    ili9486_write_data(0x55); // 16bit
    
    ili9486_write_cmd(0x29); // Display ON
    ili9486_write_cmd(0x2C); // Memory Write Start
}

void ili9486_fill_fast(uint16_t color) {
    ili9486_write_cmd(0x2A);
    ili9486_write_data(0); ili9486_write_data(0);       // X start=0
    ili9486_write_data(0x01); ili9486_write_data(0xDF);  // X end=479
    
    ili9486_write_cmd(0x2B);
    ili9486_write_data(0); ili9486_write_data(0);        // Y start=0
    ili9486_write_data(0x01); ili9486_write_data(0x3F);  // Y end=319
    
    ili9486_write_cmd(0x2C);
    for(uint32_t i=0; i<480*320; i++) {
        ILI9486_DATA = color;
    }
}
```

---

## MicroPython (RP2040)

```python
from machine import Pin, SPI
import ili9486
import time

spi = SPI(0, baudrate=30000000, sck=Pin(18), mosi=Pin(19), miso=Pin(16))
tft = ili9486.ILI9486(spi, cs=Pin(17), dc=Pin(20), rst=Pin(21), w=480, h=320)

tft.fill(ili9486.BLACK)

# 绘制网格
for x in range(0, 480, 40):
    tft.vline(x, 0, 320, ili9486.DARKGREY)
for y in range(0, 320, 40):
    tft.hline(0, y, 480, ili9486.DARKGREY)

# 绘制节点
for x in range(60, 420, 80):
    for y in range(60, 260, 80):
        tft.fill_circle(x, y, 15, ili9486.CYAN)
        tft.draw_circle(x, y, 15, ili9486.WHITE)

tft.text("MicroPython", 170, 10, ili9486.WHITE)
tft.show()
```

参考资料

暂无参考文献