
# 1.54英寸IPS显示模块的Arduino教程

## 一、所需材料

在开始之前，请准备以下材料：

- **1.54英寸IPS显示模块**：此模块采用ST7789驱动芯片，具有高分辨率和良好的色彩表现。
- **Arduino开发板**：如Arduino Uno、Arduino Nano等。
- **跳线若干**：用于连接显示模块与Arduino。
- **USB数据线**：用于连接Arduino到计算机。

## 二、硬件连接

按照下表将1.54英寸IPS显示模块与Arduino开发板按引脚连接：

| **模块引脚** | **Arduino引脚**         | **引脚说明**                   |
|--------------|--------------------------|--------------------------------|
| GND          | GND                      | 电源地                      |
| VCC          | 5V                       | 电源正                      |
| SCL          | 13                       | SPI时钟信号                 |
| SDA          | 11                       | SPI数据传输引脚             |
| RES          | 9                        | 复位控制信号（低电平复位）   |
| DC           | 8                        | 数据/寄存器选择信号          |
| CS           | 10                       | 片选控制信号（低电平使能）    |
| BLK          | 3.3V                     | 背光控制信号（高电平开启）    |

**连接示例图**：
![Arduino与1.54英寸IPS显示模块连接图](media/img-20250428115151.png)


## 三、软件设置

1. **安装Arduino IDE**：
   - 访问[Arduino官方网站](https://www.arduino.cc/)下载并安装最新版本的Arduino IDE。

2. **安装必要的库**：
   - 在Arduino IDE中，导航到 `项目` →`导入库`→ `管理库`，搜索并安装以下库：
     - **Adafruit ST7735 and ST7789 Library**：用于控制TFT显示屏。
     - **Adafruit GFX Library**：提供基本的图形功能。

## 四、编写代码

打开Arduino IDE，创建一个新项目并输入以下代码：

```cpp
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>

// 引脚定义
#define TFT_CS     10  // 片选引脚
#define TFT_RST    9   // 复位引脚
#define TFT_DC     8   // 数据/命令引脚

// 创建显示对象
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

void setup() {
  tft.initR(INITR_BLACKTAB); // 初始化显示屏
  tft.fillScreen(ST77XX_BLACK); // 清空屏幕为黑色

  // 设置文本样式
  tft.setTextColor(ST77XX_WHITE); // 设置文字颜色为白色
  tft.setTextSize(2); // 设置文字大小
  tft.setCursor(10, 10); // 设置光标位置
  tft.println("Hello, World!"); // 显示文本

  // 绘制图形示例
  drawShapes();
}

void loop() {
  // 主循环中不需要执行任何代码
}

// 绘制矩形、线条和圆形
void drawShapes() {
  // 绘制矩形
  tft.drawRect(20, 40, 100, 50, ST77XX_RED); // 画红色矩形
  tft.setTextColor(ST77XX_RED);
  tft.setCursor(30, 60);
  tft.println("Rect");

  // 绘制填充矩形
  tft.fillRect(130, 40, 80, 50, ST77XX_GREEN); // 画绿色填充矩形
  tft.setTextColor(ST77XX_GREEN);
  tft.setCursor(140, 60);
  tft.println("Filled");

  // 绘制线条
  tft.drawLine(0, 0, 240, 240, ST77XX_BLUE); // 从左上角到右下角的蓝色线条

  // 绘制圆形
  tft.drawCircle(120, 120, 30, ST77XX_YELLOW); // 画黄色圆形
  tft.fillCircle(120, 120, 15, ST77XX_ORANGE); // 画填充橙色圆形
  tft.setTextColor(ST77XX_ORANGE);
  tft.setCursor(100, 120);
  tft.println("Circle");
}
```

### 代码说明

1. **库导入**：代码开始时导入了`Adafruit_GFX`和`Adafruit_ST7735`库，这些库提供了显示模块所需的基本图形和显示功能。

2. **引脚定义**：定义了连接显示模块所需的引脚，包括片选引脚（CS）、复位引脚（RST）和数据/命令引脚（DC）。

3. **初始化显示**：
   - 在`setup`函数中，初始化TFT显示屏并清空屏幕为黑色。
   - 显示了文本“Hello, World!”。

4. **绘制图形**：调用了`drawShapes()`函数，绘制了矩形、填充矩形、线条和圆形。

5. **主循环**：`loop`函数为空，因为此示例不需要在循环中执行任何操作。

## 五、上传代码

1. 将Arduino通过USB数据线连接到计算机。
2. 在Arduino IDE中，选择正确的开发板型号和端口（通过`工具`菜单）。
3. 点击 `上传` 按钮，等待代码编译并上传。

## 六、测试显示

- 上传成功后，显示屏应显示“Hello, World!”以及绘制的图形。这表明您已成功连接并配置模块。
- 您可以在代码中修改 `println` 语句，以显示不同的文本。

## 七、故障排除

- **未显示内容**：
  - 确保电源连接良好，模块接到3.3V而非5V。
  - 检查所有引脚连接是否正确并牢固。
  
- **显示扭曲或不清晰**：
  - 确认代码中使用的驱动芯片是否正确定义（ST7789）。
  
- **库未安装**：
  - 返回库管理器，确保成功安装所需的库。

