diff --git a/README.md b/README.md
index ae53724..5fa11ee 100644
--- a/README.md
+++ b/README.md
@@ -18,15 +18,6 @@
-
Product 📷:
-
-| Product | Product Link |
-| :--------: | :------------: |
-| T-keyboard | [AliExpress]() |
-
-## Pinout
-
-
diff --git a/README_CN.MD b/README_CN.MD
index 0628ee9..db55a5e 100644
--- a/README_CN.MD
+++ b/README_CN.MD
@@ -13,11 +13,4 @@
- [ESP32-BLE-Keyboard](https://github.com/T-vK/ESP32-BLE-Keyboard/tree/0.3.0)
- [T-0.99TFT](https://github.com/Xinyuan-LilyGO/T-0.99TFT)
-Product 📷:
-| Product | Product Link |
-| :------------: | :------------: |
-| [T-keyboard]() | [AliExpress]() |
-
-## Pinout
-
diff --git a/example/coming_soon/coming_soon.ino b/example/coming_soon/coming_soon.ino
new file mode 100644
index 0000000..e69de29
diff --git a/lib/T-0.99TFT/LICENSE b/lib/T-0.99TFT/LICENSE
new file mode 100644
index 0000000..bef852e
--- /dev/null
+++ b/lib/T-0.99TFT/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 Xinyuan-LilyGO
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/lib/T-0.99TFT/README.md b/lib/T-0.99TFT/README.md
new file mode 100644
index 0000000..cf54c76
--- /dev/null
+++ b/lib/T-0.99TFT/README.md
@@ -0,0 +1,40 @@
+
+🌟LILYGO T-0.99TFT🌟
+
+
+## **[English](./README.MD) | [中文](./README_CN.MD)**
+
+Quick start:
+
+
+1. Install the current upstream Arduino IDE at the 1.8 level or later. The current version is at the [Arduino website](http://www.arduino.cc/en/main/software).
+2. Start Arduino and open Preferences window. In additional board manager add url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json .separating them with commas.
+3. Select Tools -> Board Management -> Search for ESP32 and install
+4. Select Tools -> Board ->
+5. Copy the folder in the 'lib' directory to '~Arduino/libraries'
+6. Define pins and select display direction in TFT GC9D01N.h
+#define LANDSCAPE 1 //Horizontal screen
+//#define PORTRAIT 2
+
+#define TFT_MISO -1
+#define TFT_MOSI 10
+#define TFT_SCLK 20
+#define TFT_CS -1
+#define TFT_DC 2
+#define TFT_RST -1
+#define TFT_BL 8
+
+
+
+Product 📷:
+
+| Product | Product Link |
+| :-------: | :-----------------------------------------------------------------: |
+| T-0.99TFT | [AliExpress](https://www.aliexpress.com/item/1005003954508518.html) |
+
+## Pinout
+
+
+
+
+
diff --git a/lib/T-0.99TFT/README_CN.MD b/lib/T-0.99TFT/README_CN.MD
new file mode 100644
index 0000000..cd15134
--- /dev/null
+++ b/lib/T-0.99TFT/README_CN.MD
@@ -0,0 +1,33 @@
+🌟LILYGO T-0.99TFT🌟
+
+## **[English](./README.MD) | [中文](./README_CN.MD)**
+
+快速开始:
+
+1. 安装 Arduino IDE [Arduino website](http://www.arduino.cc/en/main/software).
+2. 打开Arduino,打开“文件” ->“首选项”,附加开发板管理器的url添加: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
+3. 选择“工具” -> 开发板选择 ->
+4. 复制'lib'下的文件到'~Arduino/libraries'
+5. 在TFT_GC9D01N.h 中定义引脚和选择显示方向
+#define LANDSCAPE 1 //Horizontal screen
+//#define PORTRAIT 2
+
+#define TFT_MISO -1
+#define TFT_MOSI 10
+#define TFT_SCLK 20
+#define TFT_CS -1
+#define TFT_DC 2
+#define TFT_RST -1
+#define TFT_BL 8
+
+
+Product 📷:
+
+| Product | Product Link |
+| :-------: | :-------------------------------------------------------------------------------------------------------------------: |
+| T-0.99TFT | [淘宝](https://item.taobao.com/item.htm?spm=a213gs.success.result.1.936e7a86vB6iht&id=668735936867&qq-pf-to=pcqq.c2c) |
+
+## Pinout
+
+
+
diff --git a/lib/T-0.99TFT/examples/Flow_Image/Flow_Image.ino b/lib/T-0.99TFT/examples/Flow_Image/Flow_Image.ino
new file mode 100644
index 0000000..c614b85
--- /dev/null
+++ b/lib/T-0.99TFT/examples/Flow_Image/Flow_Image.ino
@@ -0,0 +1,26 @@
+#include
+#include "img.h"
+TFT_GC9D01N_Class TFT_099;
+
+void setup()
+{
+ // put your setup code here, to run once:
+ Serial.begin(115200);
+
+ Serial.println("setup ");
+ TFT_099.begin();
+ TFT_099.DispColor(0, 0, TFT_WIDTH, TFT_HEIGHT, BLACK);
+ delay(100);
+
+}
+uint16_t i = 0;
+void loop()
+{
+ for (int j = 0; j < 4; j++) {
+ TFT_099.DrawImage(0, (160 - (i + j * 55)), 40, 40, cupcake);
+ }
+ i++;
+ if (i == 55) {
+ i = 0;
+ }
+}
diff --git a/lib/T-0.99TFT/examples/Flow_Image/img.h b/lib/T-0.99TFT/examples/Flow_Image/img.h
new file mode 100644
index 0000000..091a692
--- /dev/null
+++ b/lib/T-0.99TFT/examples/Flow_Image/img.h
@@ -0,0 +1,45 @@
+//
+static uint16_t cupcake[] = {
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2041, 0x6904, 0x50c3, 0x0820, 0x1841, 0x2861, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc1c8, 0xfa6b, 0x7925, 0x3882, 0x50a3, 0xd1e9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc9e9, 0xf24a, 0x7105, 0x1841, 0x50a3, 0xfa6b, 0x2841, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x1000, 0xfaac, 0xfa4a, 0xe209, 0xea2a, 0xfa8c, 0x1020, 0x3a49, 0x18e3, 0x7c30, 0xdf5d, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9514, 0xffff, 0x29a6, 0x0800, 0xb166, 0xd9e9, 0xd1c8, 0x3062, 0x29a6, 0xc679, 0x2104, 0xadb6, 0xffff, 0x2145, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4249, 0xceba, 0xefff, 0x5b2c, 0x21c7, 0x1965, 0x08c3, 0x0000, 0x73cf, 0x2965, 0x4a8a, 0xd73c, 0xb5f7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7c30, 0x31c7, 0x7c51, 0xdf7d, 0xe79e, 0xe7df, 0xdf7d, 0x7c51, 0x4a8a, 0x634d, 0x73ef, 0xc679, 0xe7be, 0x0841, 0x8492, 0x4228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7c10, 0xe7be, 0xc679, 0xbe79, 0xe7be, 0x31a6, 0x39e7, 0xb638, 0xc6ba, 0xcefb, 0xefdf, 0xefff, 0xefdf, 0xa596, 0x0000, 0xf7ff, 0xc6ba, 0x3a28, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0xdf5d, 0xdf5d, 0xdf5d, 0xdf7d, 0xc69a, 0x52cb, 0x5b0c, 0xe7be, 0xefdf, 0xbe38, 0x6b8e, 0x94f3, 0x39e7, 0x2145, 0xefff, 0xf7ff, 0x73ef, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a8a, 0xdf5d, 0xdf5d, 0xd71c, 0xcedb, 0xd71c, 0xadd7, 0x18c3, 0x9d34, 0x6bae, 0x0000, 0x2965, 0x18e3, 0x10a2, 0xb659, 0xbe9a, 0x52ec, 0x0000, 0xb2e4, 0x5142, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39e8, 0x6baf, 0x4acb, 0x2985, 0x20e3, 0x6bcf, 0x73ef, 0x10a2, 0x10a2, 0xcefb, 0xf7ff, 0xbe59, 0x39e7, 0x1020, 0x2020, 0x38c0, 0xa283, 0xcb45, 0xdb85, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x71c2, 0x6981, 0x5920, 0x6141, 0x71c2, 0x79c2, 0x1860, 0x8cb2, 0xadd7, 0xc6ba, 0xefff, 0xadb7, 0x2104, 0x5921, 0xb2c4, 0xd345, 0xd365, 0xcb25, 0xc325, 0xd345, 0x69a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2080, 0xdb85, 0xd345, 0xd345, 0xd345, 0xcb45, 0xd345, 0x6982, 0x1925, 0xadd7, 0xb5f7, 0x530c, 0x10c3, 0x5961, 0xcb25, 0xcb45, 0xc325, 0xc325, 0xc325, 0xc325, 0xcb25, 0xb2e4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa284, 0xcb45, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc304, 0x5141, 0x0000, 0x0000, 0x2880, 0xa263, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xbb04, 0x2081, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xbae4, 0xcb25, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xd345, 0xdb65, 0xdb65, 0xd365, 0xcb45, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0x61a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xbae4, 0xcb25, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0x4941, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xbb04, 0xcb45, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xcb45, 0x9a63, 0x0000, 0x0061, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6982, 0xbb04, 0xd345, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xcb45, 0xd365, 0xdb85, 0xd345, 0x1040, 0x01a7, 0x0104, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0081, 0x0800, 0x71e3, 0xdb65, 0xc325, 0xc325, 0xc325, 0xc325, 0xc325, 0xcb45, 0xd365, 0xd365, 0xd345, 0xcb25, 0xc325, 0xc325, 0xd345, 0xa283, 0x2040, 0x1000, 0x0800, 0x01a7, 0x14f4, 0x00a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0c51, 0x0cb3, 0x0000, 0x5141, 0xcb24, 0xcb45, 0xcb45, 0xcb25, 0xc304, 0x81c2, 0x2080, 0x1860, 0x6982, 0xbac4, 0xbb04, 0xc324, 0x8202, 0x0000, 0x02ab, 0x0d14, 0x1659, 0x169a, 0x0c92, 0x0061, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0104, 0x0228, 0x3986, 0x3208, 0x4921, 0xa263, 0x9a63, 0x79a1, 0x1881, 0x0146, 0x02ec, 0x030c, 0x01a7, 0x00a2, 0x30a1, 0x30c1, 0x0883, 0x0945, 0x1555, 0x15f8, 0x15f7, 0x0baf, 0x01c7, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0c51, 0x2924, 0x5269, 0x0000, 0x0881, 0x0881, 0x01c7, 0x0bf0, 0x1555, 0x167a, 0x1639, 0x1618, 0x0c92, 0x0041, 0x52ab, 0xbe38, 0x08a2, 0x0c30, 0x1639, 0x030c, 0x2082, 0x5aeb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0bcf, 0x0c10, 0x0249, 0x0bcf, 0x0c92, 0x0c92, 0x0cd3, 0x0208, 0x00a2, 0x00c3, 0x1492, 0x15f8, 0x1618, 0x030c, 0x2924, 0x41c6, 0x0104, 0x15b6, 0x15f8, 0x0000, 0xd71c, 0xb5f7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e3, 0x169a, 0x15d7, 0x15f7, 0x15f7, 0x1618, 0x03af, 0x5a69, 0xd6db, 0x94b2, 0x0020, 0x15d7, 0x15d7, 0x15b7, 0x0cf4, 0x038e, 0x1576, 0x15d7, 0x15f8, 0x0000, 0xad75, 0x7c10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0c30, 0x1576, 0x1555, 0x15d7, 0x15f7, 0x03af, 0x3145, 0xc659, 0xf7ff, 0x0000, 0x0c10, 0x15f7, 0x15f7, 0x15d7, 0x15f8, 0x15f8, 0x15b7, 0x15f8, 0x0c51, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0082, 0x1124, 0x0061, 0x0bcf, 0x1618, 0x1534, 0x0186, 0x2124, 0x41e7, 0x00e4, 0x1596, 0x15f7, 0x14d3, 0x028a, 0x0269, 0x0c92, 0x15d7, 0x15b7, 0x15f8, 0x1618, 0x0186, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x73cf, 0x94d3, 0x0000, 0x1618, 0x15f7, 0x1555, 0x036d, 0x02eb, 0x14f4, 0x15f7, 0x1618, 0x0145, 0x4a08, 0x6b4d, 0x10c3, 0x0c51, 0x15f7, 0x15d7, 0x1555, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7bef, 0xffff, 0x1000, 0x15f8, 0x15b7, 0x15d7, 0x167a, 0x1596, 0x1659, 0x15f8, 0x1618, 0x0104, 0x8430, 0xffff, 0x7bcf, 0x0269, 0x1618, 0x15d7, 0x1514, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1082, 0x31a6, 0x0000, 0x1659, 0x15d7, 0x1596, 0x01a6, 0x0000, 0x0000, 0x0bcf, 0x1679, 0x0bcf, 0x0000, 0x8c92, 0x6b2c, 0x026a, 0x1638, 0x1659, 0x0a6a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1514, 0x15f7, 0x1639, 0x032d, 0x2104, 0xf7ff, 0xc638, 0x0040, 0x0c31, 0x169a, 0x0cf4, 0x0041, 0x0124, 0x14b3, 0x1596, 0x14b2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c3, 0x0aeb, 0x0c10, 0x02cb, 0x08a2, 0x94f3, 0xa596, 0x39e7, 0x0228, 0x1492, 0x0c72, 0x1492, 0x0bcf, 0x0186, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
+
+
+};
diff --git a/lib/T-0.99TFT/examples/TFT_Demo/TFT_Demo.ino b/lib/T-0.99TFT/examples/TFT_Demo/TFT_Demo.ino
new file mode 100644
index 0000000..756c61b
--- /dev/null
+++ b/lib/T-0.99TFT/examples/TFT_Demo/TFT_Demo.ino
@@ -0,0 +1,42 @@
+#include
+#include "img.h"
+
+TFT_GC9D01N_Class TFT_099;
+char *str = "ABCabc123";
+
+void setup()
+{
+ // put your setup code here, to run once:
+ Serial.begin(115200);
+
+ Serial.println("setup ");
+ TFT_099.begin();
+
+ TFT_099.DispColor(0, 0, TFT_WIDTH, TFT_HEIGHT, RED);
+ delay(500);
+ TFT_099.DispColor(0, 0, TFT_WIDTH, TFT_HEIGHT, BLUE);
+ delay(500);
+ TFT_099.DispColor(0, 0, TFT_WIDTH, TFT_HEIGHT, GREEN);
+ delay(500);
+ TFT_099.DispColor(0, 0, TFT_WIDTH, TFT_HEIGHT, BLACK);
+ delay(500);
+ TFT_099.DispStr(str, 0, 0, WHITE, BLACK);
+ delay(2000);
+ TFT_099.DrawImage(0, 0, 40, 40, closeX);
+ TFT_099.DrawImage(0, 40, 40, 40, closeX);
+ TFT_099.DrawImage(0, 40 * 2, 40, 40, closeX);
+ TFT_099.DrawImage(0, 40 * 3, 40, 40, closeX);
+
+ delay(2000);
+}
+int i = 0;
+void loop()
+{
+ for (int j = 0; j < 4; j++) {
+ TFT_099.DrawImage(0, (160 - (i + j * 55)), 30, 30, image_data_30);
+ }
+ i++;
+ if (i == 55) {
+ i = 0;
+ }
+}
\ No newline at end of file
diff --git a/lib/T-0.99TFT/examples/TFT_Demo/img.h b/lib/T-0.99TFT/examples/TFT_Demo/img.h
new file mode 100644
index 0000000..6d99c85
--- /dev/null
+++ b/lib/T-0.99TFT/examples/TFT_Demo/img.h
@@ -0,0 +1,43 @@
+//ͼRGB
+uint16_t closeX[] ={
+ 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xf7ff, 0xf7ff, 0xffff, 0xffdf, 0xffff, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffde, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xf7ff, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0x9cf3, 0x9cd3, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xad34, 0x738e, 0xffff, 0xffff, 0xffff, 0x7b6d, 0xce18, 0xffff, 0x5b2c, 0xc658, 0xffff, 0xd69a, 0x632c, 0xc638, 0xffff, 0xffff, 0x6b4d, 0xbdf7, 0xffff, 0x8430, 0x31a6, 0x4208, 0xad55, 0xffff, 0xffff, 0xad75, 0x3186, 0x3186, 0xa514, 0xffff, 0x8c71, 0x9cf3, 0xa514, 0x8c51, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0x52aa, 0x0000, 0xffff, 0xffff, 0xffff, 0x0800, 0x838e, 0xffff, 0x0020, 0x740f, 0xffff, 0xffff, 0x18a3, 0x0000, 0xffff, 0x2965, 0x0000, 0xffff, 0x2965, 0x0000, 0x39e7, 0x2945, 0x0020, 0xffff, 0x9492, 0x0000, 0x8430, 0x94b2, 0x0000, 0x7bef, 0xa534, 0x8c51, 0x7bef, 0xa534, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0x5aeb, 0x0000, 0xffff, 0xffff, 0xffff, 0x0800, 0x8bef, 0xffff, 0x0000, 0x8c91, 0xffff, 0xffff, 0xffff, 0x0000, 0x0841, 0x0000, 0xffff, 0xc638, 0x0000, 0xa514, 0xffff, 0xffff, 0xf79e, 0xffff, 0x0000, 0x9492, 0xffff, 0xffff, 0xad55, 0x0000, 0xef7d, 0x7bef, 0x8c51, 0xc638, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0x5aeb, 0x0020, 0xffff, 0xffff, 0xffff, 0x0000, 0x83cf, 0xffff, 0x0000, 0x8450, 0xffff, 0xffff, 0xffff, 0xbdf7, 0x0000, 0xbdf7, 0xffdf, 0x8c71, 0x0000, 0xffff, 0x8410, 0x0020, 0x0000, 0xffdf, 0x0000, 0xc638, 0xffdf, 0xffff, 0xe71c, 0x0000, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0x62eb, 0x0000, 0xffff, 0xffff, 0xffff, 0x0000, 0x8410, 0xffff, 0x0000, 0x9cd2, 0xffff, 0xffff, 0xffff, 0xe71c, 0x0000, 0xe71c, 0xffff, 0xb5b6, 0x0000, 0x9cd3, 0xf7be, 0x8c71, 0x0000, 0xffff, 0x0000, 0x9492, 0xffff, 0xffff, 0xad75, 0x0000, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0x5a8a, 0x0000, 0x31a6, 0x18e3, 0xdefc, 0x0000, 0x73cf, 0xffff, 0x0000, 0x1062, 0x3145, 0x4208, 0xffff, 0xdedb, 0x0000, 0xdedb, 0xffff, 0xffff, 0x2104, 0x0000, 0x39c7, 0x39e7, 0x0000, 0xffdf, 0x8c51, 0x0000, 0x9492, 0x9cf3, 0x0000, 0x632c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffdf, 0xad35, 0x73ae, 0x6b8e, 0x632d, 0xe73d, 0x6b8e, 0xbe38, 0xffff, 0x6b2d, 0x83cf, 0x734d, 0x840f, 0xffff, 0xef7d, 0x5aeb, 0xef5d, 0xffff, 0xffff, 0xffff, 0x8c51, 0x39c7, 0x4a49, 0xa534, 0xffff, 0xffff, 0xa534, 0x2965, 0x2965, 0x94b2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffde, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xf7ff, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0x8c71, 0x39e7, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf,
+ 0xfffe, 0xffff, 0xffdf, 0xffff, 0xf7ff, 0xffff, 0xeeda, 0xff1b, 0xffdd, 0xfffe, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xfffe, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0x94b2, 0x0000, 0x0000, 0xdedb, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffdf, 0xffff, 0xf7ff, 0xffff, 0xf6b9, 0xf616, 0xff9c, 0xff9c, 0xffde, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xe73c, 0x0000, 0x0000, 0x0000, 0x18c3, 0xce59, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffdf, 0xf7ff, 0xf7ff, 0xfffe, 0xfe98, 0xed94, 0xfed8, 0xf73a, 0xfffe, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x4208, 0x0000, 0x7bcf, 0x8c71, 0xbdd7, 0x3186, 0x0000, 0x0000, 0x0000, 0x2124, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf,
+ 0xffff, 0xffdf, 0xffff, 0xf7ff, 0xf7ff, 0xfffe, 0xff7c, 0xed53, 0xedb3, 0xffdc, 0xffde, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0x2124, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xfffe, 0xfffe, 0xffff, 0xffff, 0xfffe, 0xf75b, 0xde57, 0xffdd, 0xffde, 0xffff, 0xffff, 0xffdf, 0xffff, 0x83ef, 0x0020, 0x0020, 0x0000, 0x0000, 0x0001, 0x0000, 0x0020, 0x0020, 0x0000, 0x4167, 0xd659, 0xfffe, 0xfffe, 0xffff, 0xffff, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xf7df, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xe73c, 0x736c, 0xb532, 0x7b6b, 0xfffe, 0xffff, 0xffff, 0xffff, 0xffdf, 0xfffe, 0xce15, 0x5ae8, 0xbdf5, 0xad34, 0x6b0d, 0x0000, 0x0040, 0x0020, 0x0000, 0xffff, 0xffff, 0xffde, 0xfffe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xce7a, 0x2943, 0xce16, 0x5206, 0xfffe, 0xf7ff, 0xf7ff, 0xef7d, 0x944f, 0xb572, 0xde59, 0x0800, 0xdef7, 0xef3a, 0xeefb, 0x0000, 0x0000, 0x0020, 0x0040, 0xdf1d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff,
+ 0xffbf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffde, 0xbd32, 0xfffc, 0xfffe, 0xefff, 0xf7ff, 0xef5c, 0x9c4e, 0xde54, 0x8c75, 0x0000, 0xf756, 0xe6b5, 0xfffe, 0x2105, 0x0001, 0x0020, 0x0881, 0xffff, 0xffff, 0xf7bf, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xfffe, 0xd5d3, 0xffdb, 0xfffd, 0xf7ff, 0xf7ff, 0xfffe, 0xffdb, 0xf6f6, 0xceff, 0x0800, 0xfff8, 0xee73, 0xfffe, 0xce7b, 0x0001, 0x0000, 0x9c91, 0xffff, 0xffff, 0x8410, 0x9d14, 0x8c92, 0xf79d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffbe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xd593, 0xffbb, 0xfffd, 0xf7ff, 0xffff, 0xfffe, 0xfffc, 0xeeb6, 0xfffd, 0xffbb, 0xfeb6, 0xffdc, 0xffde, 0xffff, 0x2124, 0x0000, 0xffdf, 0xffff, 0xa514, 0xf77d, 0xfffe, 0xffff, 0x73ae, 0x9472, 0xdefb, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7ff, 0xffdf, 0xd593, 0xffbb, 0xffbd, 0xffff, 0xffff, 0xffff, 0xfffd, 0xffdc, 0xa3c7, 0xffda, 0xffde, 0xffdf, 0xffff, 0xfffd, 0xbdb4, 0xdeba, 0xffff, 0xffff, 0x8c71, 0xffff, 0xffff, 0x73cf, 0xbdf9, 0xffff, 0xbdf7, 0xa534, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xf7ff, 0xffff, 0xd5b4, 0xffbc, 0xffde, 0xf7df, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xff97, 0xe676, 0xef7d, 0xfffe, 0xff38, 0xee94, 0xfffc, 0xffff, 0xffff, 0xbdf6, 0xef5c, 0xce9b, 0xaddb, 0x5310, 0xf7ff, 0xffff, 0xd6ba, 0xce79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xf7ff, 0xf7ff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xd5d5, 0xffbb, 0xffde, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffbe, 0xffff, 0xe7bd, 0xf799, 0xcd2b, 0xffb7, 0xfffc, 0xffff, 0xffff, 0x9c8f, 0xffdd, 0x5a8c, 0x8c98, 0xa5bd, 0xf7ff, 0xfffe, 0x8c51, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xfffe, 0xffde, 0xffff, 0xffff, 0xffff, 0xde15, 0xff7a, 0xffdc, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xf7ff, 0xfffe, 0xfff8, 0xd50a, 0xff95, 0xffdc, 0xffff, 0xe75e, 0xd616, 0xc4f0, 0x93ad, 0x526c, 0xe77f, 0xf7ff, 0xe77b, 0xbdd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xfffe, 0xfffe, 0xffff, 0xf7ff, 0xffff, 0xe656, 0xf655, 0xff7b, 0xffbd, 0xffde, 0xffff, 0xffff, 0xf7ff, 0xf7ff, 0xffff, 0xff7b, 0xff17, 0xed8e, 0xfed3, 0xff9a, 0xffdf, 0x8cb6, 0xd659, 0xfe73, 0xe56d, 0xcd71, 0xef5d, 0xffff, 0x8c70, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xfffe, 0xfffe, 0xffff, 0xf7ff, 0xffff, 0xff9c, 0xfeb8, 0xe5f5, 0xd5f6, 0x7b8c, 0x3a06, 0xa554, 0xf7ff, 0xfffc, 0xf635, 0xed93, 0xed94, 0xfdf3, 0xfdb0, 0xf5b1, 0xee39, 0x9495, 0x9c70, 0xedee, 0xe548, 0xfed2, 0xf7bd, 0xf7df, 0xb554, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xfffd, 0xfffe, 0xffde, 0x94b1, 0x18e2, 0x0000, 0x0000, 0xcc6e, 0xfdd3, 0xfdb3, 0xfd93, 0xfdd3, 0xfdb1, 0xfdb1, 0xfdb4, 0xe5f7, 0xf696, 0xcce8, 0xdd69, 0xc5d0, 0xbe38, 0x7c31, 0xfffd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xefff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffde, 0xde18, 0xfdb4, 0xfd72, 0xfd91, 0xfdd2, 0xfd92, 0xfdb2, 0xfd90, 0xfd91, 0xfdb2, 0xfe73, 0xfff6, 0xc56d, 0xbdb2, 0x7bef, 0xc617, 0xffdc, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xf7ff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffde, 0xfefb, 0xfd72, 0xfdd2, 0xfdd1, 0xfdb2, 0xfdb3, 0xfd93, 0xfdf2, 0xfdb0, 0xfdb1, 0xedb3, 0x83ac, 0xfffd, 0xd613, 0xffb9, 0xffdc, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffbf, 0xffff, 0xffff, 0xffde, 0xee98, 0xfd90, 0xf5d1, 0xf5f2, 0xfdb3, 0xfdb4, 0xfdb4, 0xf5d2, 0xfdd0, 0xfd91, 0xf618, 0x5b2f, 0x0020, 0xf672, 0xf54a, 0xfef6, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xe71c, 0xfd70, 0xfd91, 0xfdb2, 0xf5b3, 0xfdf3, 0xfd91, 0xfd91, 0xfd91, 0xfdb3, 0xfe37, 0xffdd, 0xad11, 0x49c0, 0xfe4d, 0xf4e3, 0xfea6, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf550, 0xfdd3, 0xf5b3, 0xfdd3, 0xfdb2, 0xfdb2, 0xfdb2, 0xfdb2, 0xe572, 0xff9c, 0xffff, 0xfffe, 0xfffb, 0xe610, 0xe528, 0xf505, 0xf717, 0xfffc, 0xfffe, 0xffdf, 0xffff, 0xffff, 0xffff, 0xfffe,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbb, 0xe5f4, 0xedd4, 0xfe35, 0xfdf4, 0xfdf4, 0xf5f3, 0xe5d3, 0xff7b, 0xffff, 0xf7ff, 0xffff, 0xfffe, 0xfffc, 0xff36, 0xdd6e, 0xbd6a, 0xff55, 0xfffc, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xfffe,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffde, 0xfffe, 0xe657, 0x72a8, 0x9bac, 0x82e9, 0xcd93, 0xfffd, 0xfffe, 0xffff, 0xffff, 0xf7ff, 0xffff, 0xffff, 0xfffe, 0xffdd, 0xe6d0, 0xfff7, 0xfffc, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xfffe,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd699, 0x0800, 0x0800, 0x0000, 0xa4f2, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xfffc, 0xfffd, 0xfffe, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7df, 0xce9a, 0x0000, 0x10a2, 0x0841, 0x7bf0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7ff, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xf7ff, 0xf7ff, 0xf7fe, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffbf, 0xffff, 0xffff, 0xfffe, 0xfffe, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xfffe, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe
+};
diff --git a/lib/T-0.99TFT/image/T-0.99TFT_CN.jpg b/lib/T-0.99TFT/image/T-0.99TFT_CN.jpg
new file mode 100644
index 0000000..a2b3f86
Binary files /dev/null and b/lib/T-0.99TFT/image/T-0.99TFT_CN.jpg differ
diff --git a/lib/T-0.99TFT/image/T-0.99TFT_EN.jpg b/lib/T-0.99TFT/image/T-0.99TFT_EN.jpg
new file mode 100644
index 0000000..0f903eb
Binary files /dev/null and b/lib/T-0.99TFT/image/T-0.99TFT_EN.jpg differ
diff --git a/lib/T-0.99TFT/keywords.txt b/lib/T-0.99TFT/keywords.txt
new file mode 100644
index 0000000..9a7e451
--- /dev/null
+++ b/lib/T-0.99TFT/keywords.txt
@@ -0,0 +1,11 @@
+#######################################
+#T-0.99TFT
+#######################################
+# Class
+#######################################
+
+TFT_GC9D01N_Class KEYWORD1
+
+#######################################
+# Methods and Functions
+#######################################
\ No newline at end of file
diff --git a/lib/T-0.99TFT/library.properties b/lib/T-0.99TFT/library.properties
new file mode 100644
index 0000000..646a972
--- /dev/null
+++ b/lib/T-0.99TFT/library.properties
@@ -0,0 +1,9 @@
+name=T-0.99TFT_Library
+version=1.0.0
+author=LILYGO
+maintainer=
+sentence=Arduino library for 0.99 TFT
+paragraph=Arduino library for 0.99 TFT. Tested with ESP32
+category=Communication
+url=https://github.com/Xinyuan-LilyGO/T-0.99TFT
+architectures=esp32
diff --git a/lib/T-0.99TFT/src/Fonts.h b/lib/T-0.99TFT/src/Fonts.h
new file mode 100644
index 0000000..17b622f
--- /dev/null
+++ b/lib/T-0.99TFT/src/Fonts.h
@@ -0,0 +1,298 @@
+#pragma once
+#ifdef CHAR_FONT_W8_H16
+//ascii 32~90(!~Z), (32~47)�ո�~/,(48~57)0~9,(58~64):~@,(65~126)A~~
+//ord 0~95, (48~57)0~9,(65~126)A~z,(33~47)!~/,(58~64):~@
+unsigned char ascii[] = {
+//����12,��������x��=8x16
+//0(ord:0)
+ 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00,
+
+//(ord:1)~1
+ 0x00, 0x00, 0x00, 0x10, 0x70, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7C, 0x00, 0x00,
+
+//(ord:2)~2
+ 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x04, 0x04, 0x08, 0x10, 0x20, 0x42, 0x7E, 0x00, 0x00,
+
+//(ord:3)~3
+ 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x04, 0x18, 0x04, 0x02, 0x02, 0x42, 0x44, 0x38, 0x00, 0x00,
+
+//(ord:4)~4
+ 0x00, 0x00, 0x00, 0x04, 0x0C, 0x14, 0x24, 0x24, 0x44, 0x44, 0x7E, 0x04, 0x04, 0x1E, 0x00, 0x00,
+
+//(ord:5)~5
+ 0x00, 0x00, 0x00, 0x7E, 0x40, 0x40, 0x40, 0x58, 0x64, 0x02, 0x02, 0x42, 0x44, 0x38, 0x00, 0x00,
+
+//(ord:0)~6
+ 0x00, 0x00, 0x00, 0x1C, 0x24, 0x40, 0x40, 0x58, 0x64, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00,
+
+//(ord:0)~7
+ 0x00, 0x00, 0x00, 0x7E, 0x44, 0x44, 0x08, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00,
+
+//(ord:0)~8
+ 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x24, 0x18, 0x24, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00,
+
+//(ord:0)~9
+ 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x42, 0x42, 0x26, 0x1A, 0x02, 0x02, 0x24, 0x38, 0x00, 0x00,
+
+// A~Z,����12; �������¶�Ӧ�ĵ���Ϊ����x��=8x16
+//(ord:10)~A
+ 0x00, 0x00, 0x00, 0x10, 0x10, 0x18, 0x28, 0x28, 0x24, 0x3C, 0x44, 0x42, 0x42, 0xE7, 0x00, 0x00,
+
+//(ord:11)~B
+ 0x00, 0x00, 0x00, 0xF8, 0x44, 0x44, 0x44, 0x78, 0x44, 0x42, 0x42, 0x42, 0x44, 0xF8, 0x00, 0x00,
+
+//(ord:12)~C
+ 0x00, 0x00, 0x00, 0x3E, 0x42, 0x42, 0x80, 0x80, 0x80, 0x80, 0x80, 0x42, 0x44, 0x38, 0x00, 0x00,
+
+//(ord:13)~D
+ 0x00, 0x00, 0x00, 0xF8, 0x44, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x44, 0xF8, 0x00, 0x00,
+
+//(ord:14)~E
+ 0x00, 0x00, 0x00, 0xFC, 0x42, 0x48, 0x48, 0x78, 0x48, 0x48, 0x40, 0x42, 0x42, 0xFC, 0x00, 0x00,
+
+//(ord:15)~F
+ 0x00, 0x00, 0x00, 0xFC, 0x42, 0x48, 0x48, 0x78, 0x48, 0x48, 0x40, 0x40, 0x40, 0xE0, 0x00, 0x00,
+
+//(ord:16)~G
+ 0x00, 0x00, 0x00, 0x3C, 0x44, 0x44, 0x80, 0x80, 0x80, 0x8E, 0x84, 0x44, 0x44, 0x38, 0x00, 0x00,
+
+//(ord:17)~H
+ 0x00, 0x00, 0x00, 0xE7, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x42, 0xE7, 0x00, 0x00,
+
+//(ord:18)~I
+ 0x00, 0x00, 0x00, 0x7C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7C, 0x00, 0x00,
+
+//(ord:19)~J
+ 0x00, 0x00, 0x00, 0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x88, 0xF0,
+
+//(ord:20)~K
+ 0x00, 0x00, 0x00, 0xEE, 0x44, 0x48, 0x50, 0x70, 0x50, 0x48, 0x48, 0x44, 0x44, 0xEE, 0x00, 0x00,
+
+//(ord:21)~L
+ 0x00, 0x00, 0x00, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x42, 0xFE, 0x00, 0x00,
+
+//(ord:22)~M
+ 0x00, 0x00, 0x00, 0xEE, 0x6C, 0x6C, 0x6C, 0x6C, 0x54, 0x54, 0x54, 0x54, 0x54, 0xD6, 0x00, 0x00,
+
+//(ord:23)~N
+ 0x00, 0x00, 0x00, 0xC7, 0x62, 0x62, 0x52, 0x52, 0x4A, 0x4A, 0x4A, 0x46, 0x46, 0xE2, 0x00, 0x00,
+
+//(ord:24)~O
+ 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x44, 0x38, 0x00, 0x00,
+
+//(ord:25)~P
+ 0x00, 0x00, 0x00, 0xFC, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x40, 0x40, 0xE0, 0x00, 0x00,
+
+//(ord:26)~Q
+ 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x82, 0x82, 0xB2, 0xCA, 0x4C, 0x38, 0x06, 0x00,
+
+//(ord:27)~R
+ 0x00, 0x00, 0x00, 0xFC, 0x42, 0x42, 0x42, 0x7C, 0x48, 0x48, 0x44, 0x44, 0x42, 0xE3, 0x00, 0x00,
+
+//(ord:28)~S
+ 0x00, 0x00, 0x00, 0x3E, 0x42, 0x42, 0x40, 0x20, 0x18, 0x04, 0x02, 0x42, 0x42, 0x7C, 0x00, 0x00,
+
+//(ord:29)~T
+ 0x00, 0x00, 0x00, 0xFE, 0x92, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00, 0x00,
+
+//(ord:30)~U
+ 0x00, 0x00, 0x00, 0xE7, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00,
+
+//(ord:31)~V
+ 0x00, 0x00, 0x00, 0xE7, 0x42, 0x42, 0x44, 0x24, 0x24, 0x28, 0x28, 0x18, 0x10, 0x10, 0x00, 0x00,
+
+//(ord:32)~W
+ 0x00, 0x00, 0x00, 0xD6, 0x92, 0x92, 0x92, 0x92, 0xAA, 0xAA, 0x6C, 0x44, 0x44, 0x44, 0x00, 0x00,
+
+//(ord:33)~X
+ 0x00, 0x00, 0x00, 0xE7, 0x42, 0x24, 0x24, 0x18, 0x18, 0x18, 0x24, 0x24, 0x42, 0xE7, 0x00, 0x00,
+
+//(ord:34)~Y
+ 0x00, 0x00, 0x00, 0xEE, 0x44, 0x44, 0x28, 0x28, 0x10, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00, 0x00,
+
+//(ord:35)~Z
+ 0x00, 0x00, 0x00, 0x7E, 0x84, 0x04, 0x08, 0x08, 0x10, 0x20, 0x20, 0x42, 0x42, 0xFC, 0x00, 0x00,
+
+//(ord:36)~ [
+ 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1E, 0x00,
+
+//(ord:37)~ '\'
+ 0x00, 0x00, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02,
+
+//(ord:38)~ ]
+ 0x00, 0x78, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x78, 0x00,
+
+//(ord:39)~ ^
+ 0x00, 0x1C, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+//(ord:40)~ _
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+
+//(ord:41)~ `
+ 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+//(ord:42)~ a
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x1E, 0x22, 0x42, 0x42, 0x3F, 0x00, 0x00,
+
+//(ord:43)~ b
+ 0x00, 0x00, 0x00, 0xC0, 0x40, 0x40, 0x40, 0x58, 0x64, 0x42, 0x42, 0x42, 0x64, 0x58, 0x00, 0x00,
+
+//(ord:44)~ c
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x40, 0x40, 0x40, 0x22, 0x1C, 0x00, 0x00,
+
+//(ord:45)~ d
+ 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x02, 0x1E, 0x22, 0x42, 0x42, 0x42, 0x26, 0x1B, 0x00, 0x00,
+
+//(ord:46)~ e
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x7E, 0x40, 0x40, 0x42, 0x3C, 0x00, 0x00,
+
+//(ord:47)~ f
+ 0x00, 0x00, 0x00, 0x0F, 0x11, 0x10, 0x10, 0x7E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7C, 0x00, 0x00,
+
+//(ord:48)~ g
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x44, 0x44, 0x38, 0x40, 0x3C, 0x42, 0x42, 0x3C,
+
+//(ord:49)~ h
+ 0x00, 0x00, 0x00, 0xC0, 0x40, 0x40, 0x40, 0x5C, 0x62, 0x42, 0x42, 0x42, 0x42, 0xE7, 0x00, 0x00,
+
+//(ord:50)~ i
+ 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x70, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7C, 0x00, 0x00,
+
+//(ord:51)~ j
+ 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x1C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x44, 0x78,
+
+//(ord:52)~ k
+ 0x00, 0x00, 0x00, 0xC0, 0x40, 0x40, 0x40, 0x4E, 0x48, 0x50, 0x68, 0x48, 0x44, 0xEE, 0x00, 0x00,
+
+//(ord:53)~ l
+ 0x00, 0x00, 0x00, 0x70, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7C, 0x00, 0x00,
+
+//(ord:54)~ m
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x49, 0x49, 0x49, 0x49, 0x49, 0xED, 0x00, 0x00,
+
+//(ord:55)~ n
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x62, 0x42, 0x42, 0x42, 0x42, 0xE7, 0x00, 0x00,
+
+//(ord:56)~ o
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00,
+
+//(ord:57)~ p
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x64, 0x42, 0x42, 0x42, 0x44, 0x78, 0x40, 0xE0,
+
+//(ord:58)~ q
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x22, 0x42, 0x42, 0x42, 0x22, 0x1E, 0x02, 0x07,
+
+//(ord:59)~ r
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0x32, 0x20, 0x20, 0x20, 0x20, 0xF8, 0x00, 0x00,
+
+//(ord:60)~ s
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x42, 0x40, 0x3C, 0x02, 0x42, 0x7C, 0x00, 0x00,
+
+//(ord:61)~ t
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x7C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x00, 0x00,
+
+//(ord:62)~ u
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x42, 0x42, 0x42, 0x42, 0x46, 0x3B, 0x00, 0x00,
+
+//(ord:63)~ v
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x42, 0x24, 0x24, 0x28, 0x10, 0x10, 0x00, 0x00,
+
+//(ord:64)~ w
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0x92, 0x92, 0xAA, 0xAA, 0x44, 0x44, 0x00, 0x00,
+
+//(ord:65)~ x
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x24, 0x18, 0x18, 0x18, 0x24, 0x76, 0x00, 0x00,
+
+//(ord:66)~ y
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x42, 0x24, 0x24, 0x28, 0x18, 0x10, 0x10, 0xE0,
+
+//(ord:67)~ z
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x44, 0x08, 0x10, 0x10, 0x22, 0x7E, 0x00, 0x00,
+
+//(ord:68)~ {
+ 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0x00,
+
+//(ord:69)~ |
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+
+//(ord:70)~ }
+ 0x00, 0x60, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x60, 0x00,
+
+//(ord:71)~ ~
+ 0x30, 0x4C, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+
+//(ord:72)~ �ո�
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+//(ord:73)~ !
+ 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
+
+//(ord:74)~ "
+ 0x00, 0x12, 0x36, 0x24, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+//(ord:75)~ #
+ 0x00, 0x00, 0x00, 0x24, 0x24, 0x24, 0xFE, 0x48, 0x48, 0x48, 0xFE, 0x48, 0x48, 0x48, 0x00, 0x00,
+
+//(ord:76)~ $
+ 0x00, 0x00, 0x10, 0x38, 0x54, 0x54, 0x50, 0x30, 0x18, 0x14, 0x14, 0x54, 0x54, 0x38, 0x10, 0x10,
+
+//(ord:77)~ %
+ 0x00, 0x00, 0x00, 0x44, 0xA4, 0xA8, 0xA8, 0xA8, 0x54, 0x1A, 0x2A, 0x2A, 0x2A, 0x44, 0x00, 0x00,
+
+//(ord:78)~ &
+ 0x00, 0x00, 0x00, 0x30, 0x48, 0x48, 0x48, 0x50, 0x6E, 0xA4, 0x94, 0x88, 0x89, 0x76, 0x00, 0x00,
+
+//(ord:79)~ '
+ 0x00, 0x60, 0x60, 0x20, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+//(ord:80)~ (
+ 0x00, 0x02, 0x04, 0x08, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x04, 0x02, 0x00,
+
+//(ord:81)~ )
+ 0x00, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, 0x20, 0x40, 0x00,
+
+//(ord:82)~ *
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0xD6, 0x38, 0x38, 0xD6, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00,
+
+//(ord:83)~ +
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00,
+
+//(ord:84)~ ,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x20, 0xC0,
+
+//(ord:85)~ -
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+//(ord:86)~ .
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
+
+//(ord:87)~ /
+ 0x00, 0x00, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x00,
+
+//(ord:88)~ :
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
+
+//(ord:89)~ ;
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x20,
+
+//(ord:90)~ <
+ 0x00, 0x00, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x00,
+
+//(ord:91)~ =
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+//(ord:92)~ >
+ 0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, 0x00,
+
+//(ord:93)~ ?
+ 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x62, 0x02, 0x04, 0x08, 0x08, 0x00, 0x18, 0x18, 0x00, 0x00,
+
+//(ord:94)~ @
+ 0x00, 0x00, 0x00, 0x38, 0x44, 0x5A, 0xAA, 0xAA, 0xAA, 0xAA, 0xB4, 0x42, 0x44, 0x38, 0x00, 0x00,
+
+//(ord:95)~ 0xff
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+
+};
+#endif
diff --git a/lib/T-0.99TFT/src/TFT_GC9D01N.cpp b/lib/T-0.99TFT/src/TFT_GC9D01N.cpp
new file mode 100644
index 0000000..45a31d9
--- /dev/null
+++ b/lib/T-0.99TFT/src/TFT_GC9D01N.cpp
@@ -0,0 +1,782 @@
+
+#include "TFT_GC9D01N.h"
+#include "Fonts.h"
+
+void TFT_GC9D01N_Class::begin_tft_write()
+{
+ SPI.beginTransaction(SPISettings(SPI_FREQUENCY, MSBFIRST, SPI_MODE0)); // RP2040 SDK -> 68us delay!
+ CS_L;
+ // SET_BUS_WRITE_MODE;
+}
+
+void TFT_GC9D01N_Class::end_tft_write()
+{
+ // SPI_BUSY_CHECK; // Check send complete and clean out unused rx data
+ CS_H;
+ SPI.endTransaction(); // RP2040 SDK -> 0.7us delay
+}
+
+void TFT_GC9D01N_Class::writedata(uint8_t d)
+{
+ begin_tft_write();
+
+ DC_D; // Play safe, but should already be in data mode 高电平1为数据
+
+ SPI.transfer(d);
+
+ CS_L; // Allow more hold time for low VDI rail
+
+ end_tft_write();
+}
+
+void TFT_GC9D01N_Class::writecommand(uint8_t c)
+{
+ begin_tft_write();
+
+ DC_C;
+
+ SPI.transfer(c);
+
+ DC_D;
+
+ end_tft_write();
+
+}
+
+void TFT_GC9D01N_Class::lcd_init()
+{
+
+ RST_H;
+ delay(80);
+
+ RST_L;
+ delay(80);
+
+ RST_H;
+ delay(480);
+
+
+ writecommand(0xFE);
+ writecommand(0xEF);
+
+ writecommand(0x80);
+ writedata(0xFF);
+
+ writecommand(0x81);
+ writedata(0xFF);
+
+ writecommand(0x82);
+ writedata(0xFF);
+
+ writecommand(0x83);
+ writedata(0xFF);
+
+ writecommand(0x84);
+ writedata(0xFF);
+
+ writecommand(0x85);
+ writedata(0xFF);
+
+ writecommand(0x86);
+ writedata(0xFF);
+
+ writecommand(0x87);
+ writedata(0xFF);
+
+ writecommand(0x88);
+ writedata(0xFF);
+
+ writecommand(0x89);
+ writedata(0xFF);
+
+ writecommand(0x8A);
+ writedata(0xFF);
+
+ writecommand(0x8B);
+ writedata(0xFF);
+
+ writecommand(0x8C);
+ writedata(0xFF);
+
+ writecommand(0x8D);
+ writedata(0xFF);
+
+ writecommand(0x8E);
+ writedata(0xFF);
+
+ writecommand(0x8F);
+ writedata(0xFF);
+
+ writecommand(0x3A);
+ writedata(0x05);
+
+ writecommand(0xEC);
+ writedata(0x11);
+
+
+ writecommand(0x7E);
+ writedata(0x7a);
+
+
+ writecommand(0x74);
+ writedata(0x02);
+ writedata(0x0E);
+ writedata(0x00);
+ writedata(0x00);
+ writedata(0x28);
+ writedata(0x00);
+ writedata(0x00);
+
+ writecommand(0x98);
+ writedata(0x3E);
+ writecommand(0x99);
+ writedata(0x3E);
+
+
+
+
+ writecommand(0xB5);
+ writedata(0x0E);
+ writedata(0x0E);
+ writecommand(0x60);
+ writedata(0x38);
+ writedata(0x09);
+ writedata(0x6D);
+ writedata(0x67);
+
+
+ writecommand(0x63);
+ writedata(0x38);
+ writedata(0xAD);
+ writedata(0x6D);
+ writedata(0x67);
+ writedata(0x05);
+
+
+ writecommand(0x64);
+ writedata(0x38);
+ writedata(0x0B);
+ writedata(0x70);
+ writedata(0xAB);
+ writedata(0x6D);
+ writedata(0x67);
+
+
+ writecommand(0x66);
+ writedata(0x38);
+ writedata(0x0F);
+ writedata(0x70);
+ writedata(0xAF);
+ writedata(0x6d);
+ writedata(0x67);
+
+ writecommand(0x6A);
+ writedata(0x00);
+ writedata(0x00);
+
+ writecommand(0x68);
+ writedata(0x3B);
+ writedata(0x08);
+ writedata(0x04);
+ writedata(0x00);
+ writedata(0x04);
+ writedata(0x64);
+ writedata(0x67);
+
+
+
+ writecommand(0x6C);
+ writedata(0x22);
+ writedata(0x02);
+ writedata(0x22);
+ writedata(0x02);
+ writedata(0x22);
+ writedata(0x22);
+ writedata(0x50);
+
+ writecommand(0x6E);
+ writedata(0x00);
+ writedata(0x00);
+ writedata(0x00);
+ writedata(0x00);
+ writedata(0x07);
+ writedata(0x01);
+ writedata(0x13);
+ writedata(0x11);
+
+ writedata(0x0B);
+ writedata(0x09);
+ writedata(0x16);
+ writedata(0x15);
+ writedata(0x1D);
+ writedata(0x1E);
+ writedata(0x00);
+ writedata(0x00);
+
+ writedata(0x00);
+ writedata(0x00);
+ writedata(0x1E);
+
+ writedata(0x1D);
+ writedata(0x15);
+ writedata(0x16);
+ writedata(0x0A);
+ writedata(0x0C);
+
+ writedata(0x12);
+ writedata(0x14);
+ writedata(0x02);
+ writedata(0x08);
+ writedata(0x00);
+ writedata(0x00);
+ writedata(0x00);
+ writedata(0x00);
+
+
+ writecommand(0xA9);
+ writedata(0x1B);
+
+ writecommand(0xA8);
+ writedata(0x6B);
+
+ writecommand(0xA8);
+ writedata(0x6D);
+
+ writecommand(0xA7);
+ writedata(0x40);
+
+ writecommand(0xAD);
+ writedata(0x47);
+
+
+ writecommand(0xAF);
+ writedata(0x73);
+
+ writecommand(0xAF);
+ writedata(0x73);
+
+ writecommand(0xAC);
+ writedata(0x44);
+
+ writecommand(0xA3);
+ writedata(0x6C);
+
+ writecommand(0xCB);
+ writedata(0x00);
+
+ writecommand(0xCD);
+ writedata(0x22);
+
+
+ writecommand(0xC2);
+ writedata(0x10);
+
+ writecommand(0xC5);
+ writedata(0x00);
+
+ writecommand(0xC6);
+ writedata(0x0E);
+
+ writecommand(0xC7);
+ writedata(0x1f);
+
+ writecommand(0xC8);
+ writedata(0x0E);
+
+ writecommand(0xbf);
+ writedata(0x00);
+
+ writecommand(0xF9);
+ writedata(0x20);
+
+ writecommand(0x9b);
+ writedata(0x3b);
+ writecommand(0x93);
+ writedata(0x33);
+ writedata(0x7f);
+ writedata(0x00);
+
+ writecommand(0x70);
+ writedata(0x0E);
+ writedata(0x0f);
+ writedata(0x03);
+ writedata(0x0e);
+ writedata(0x0f);
+ writedata(0x03);
+
+ writecommand(0x71);
+ writedata(0x0e);
+ writedata(0x16);
+ writedata(0x03);
+
+ writecommand(0x91);
+ writedata(0x0e);
+ writedata(0x09);
+
+
+
+ writecommand(0xc3);
+ writedata(0x2c);
+ writecommand(0xc4);
+ writedata(0x1a);
+
+
+
+
+ writecommand(0xf0);
+ writedata(0x51);
+ writedata(0x13);
+ writedata(0x0c);
+ writedata(0x06);
+ writedata(0x00);
+ writedata(0x2f);
+
+ writecommand(0xf2);
+ writedata(0x51);
+ writedata(0x13);
+ writedata(0x0c);
+ writedata(0x06);
+ writedata(0x00);
+ writedata(0x33);
+
+ writecommand(0xf1);
+ writedata(0x3c);
+ writedata(0x94);
+ writedata(0x4f);
+ writedata(0x33);
+ writedata(0x34);
+ writedata(0xCf);
+
+ writecommand(0xf3);
+ writedata(0x4d);
+ writedata(0x94);
+ writedata(0x4f);
+ writedata(0x33);
+ writedata(0x34);
+ writedata(0xCf);
+
+
+#define TFT_MAD_MY 0x80
+#define TFT_MAD_MX 0x40
+#define TFT_MAD_MV 0x20
+#define TFT_MAD_ML 0x10
+
+ writecommand(0x36);
+
+//#if LANDSCAPE
+//writedata(0x00 | TFT_MAD_MX | TFT_MAD_MY);
+
+#if (LANDSCAPE==2)||(PORTRAIT==2)
+ writedata(0x00);
+#else
+ writedata(0x00 | TFT_MAD_MX | TFT_MAD_MY);
+#endif
+ writecommand(0x11);
+ delay(200);
+ writecommand(0x29);
+ writecommand(0x2C);
+
+
+}
+
+//init lcd
+int TFT_GC9D01N_Class::begin()
+{
+
+ pinMode(TFT_BL, OUTPUT);
+ pinMode(TFT_SCLK, OUTPUT);
+ pinMode(TFT_MISO, OUTPUT);
+ pinMode(TFT_MOSI, OUTPUT);
+ pinMode(TFT_DC, OUTPUT);
+
+ pinMode(TFT_CS, OUTPUT);
+ pinMode(TFT_RST, OUTPUT);
+
+ digitalWrite(TFT_BL, LOW); //开启背光
+ delay(100);
+ SPI.begin(TFT_SCLK, TFT_MISO, TFT_MOSI, TFT_CS);
+
+ lcd_init();
+
+ return 1;
+
+}
+
+void TFT_GC9D01N_Class::backlight(uint8_t state)
+{
+ digitalWrite(TFT_BL, state);
+}
+
+/**
+ * @brief Select the block area to write to 选择写的块区域
+ * @note
+ * @param Xstart:
+ * @param Xend:
+ * @param Ystart:
+ * @param Yend:
+ * @retval None
+ */
+void TFT_GC9D01N_Class::BlockWrite(unsigned int Xstart, unsigned int Xend, unsigned int Ystart, unsigned int Yend)
+{
+
+ writecommand(0x2A);
+ writedata(Xstart >> 8);
+ writedata(Xstart);
+ writedata(Xend >> 8);
+ writedata(Xend);
+
+ writecommand(0x2B);
+ writedata(Ystart >> 8);
+ writedata(Ystart);
+ writedata(Yend >> 8);
+ writedata(Yend);
+
+ writecommand(0x2c);
+
+}
+
+/**
+ * @brief Drawing function
+ * @note
+ * @param Xstart: starting x-coordinate x坐标开始
+ * @param Ystart: starting y-coordinate y坐标结束
+ * @param w: The width of the image
+ * @param h: The height of the image
+ * @param color:
+ * @retval None
+ */
+void TFT_GC9D01N_Class::DrawImage(unsigned int Xstart, unsigned int Ystart, unsigned int w, unsigned int h, uint16_t *color)
+{
+ unsigned int i, j;
+ unsigned int Xend = Xstart + w;
+ unsigned int Yend = Ystart + h;
+
+ BlockWrite(Xstart, Xend - 1, Ystart, Yend /*- 1*/);
+ uint32_t len = w * h;
+
+
+#if LANDSCAPE
+
+ SPI.beginTransaction(SPISettings(SPI_FREQUENCY, MSBFIRST, SPI_MODE0));
+ CS_L;
+ DC_D;
+ for (int i = 0; i <= h; i++) {
+ for (int j = w - 1 ; j >= 0 ; j--) {
+ SPI.transfer16(*(color + ((j * (Yend - Ystart)) + (i))));
+ }
+ }
+ CS_H;
+ SPI.endTransaction();
+
+#else
+
+ SPI.beginTransaction(SPISettings(SPI_FREQUENCY, MSBFIRST, SPI_MODE0));
+ CS_L;
+ DC_D;
+ for (int i = 0; i <= h; i++) {
+ for (int j = w - 1 ; j >= 0 ; j--) {
+ SPI.transfer16(*color);
+ color++;
+ }
+ }
+ CS_H;
+ SPI.endTransaction();
+
+#endif
+
+}
+
+
+void TFT_GC9D01N_Class::DispColor(unsigned int Xstart, unsigned int Ystart, unsigned int Xend, unsigned int Yend, unsigned int color)
+{
+
+
+ unsigned int i, j;
+ uint32_t len = TFT_HEIGHT * TFT_WIDTH;
+ BlockWrite(Xstart, Xend - 1, Ystart, Yend - 1);
+
+ SPI.beginTransaction(SPISettings(SPI_FREQUENCY, MSBFIRST, SPI_MODE0));
+ CS_L;
+ DC_D;
+ for (i = 0; i <= TFT_HEIGHT; i++) {
+ for (j = 0; j < TFT_WIDTH; j++) {
+ SPI.transfer16(color);
+ }
+ }
+ CS_H;
+ SPI.endTransaction();
+
+}
+
+void TFT_GC9D01N_Class::WriteOneDot(unsigned int color)
+{
+
+
+ CS_L;
+ DC_D;
+
+ writedata(color >> 8);
+ writedata(color);
+
+ CS_H;
+
+}
+
+unsigned char ToOrd( char ch)
+{
+ if (ch < 32) {
+ ch = 95;
+ } else if ((ch >= 32) && (ch <= 47)) {
+ ch = (ch - 32) + 10 + 62;
+ } else if ((ch >= 48) && (ch <= 57)) {
+ ch = ch - 48;
+ } else if ((ch >= 58) && (ch <= 64)) {
+ ch = (ch - 58) + 10 + 62 + 16;
+ } else if ((ch >= 65) && (ch <= 126)) {
+ ch = (ch - 65) + 10;
+ } else if (ch > 126) {
+ ch = 95;
+ }
+
+ return ch;
+}
+
+void hz816_s90(const unsigned char *p_ucHz, unsigned char *p_ucResult) //A conversion function that rotates an 8x16 character font 90 degrees clockwise 把8x16字符字模顺时针旋转90度的转换函数
+{
+
+ unsigned char a;
+
+ unsigned char b;
+
+ unsigned char c;
+
+ unsigned char uiBuffer[16];
+ for (a = 0; a < 16; a++)
+
+ {
+ uiBuffer[a] = p_ucHz[a];
+ }
+
+ c = 0;
+
+ for (a = 0; a < 8; a++)
+
+ {
+
+ for (b = 0; b < 8; b++)
+
+ {
+
+ p_ucResult[c] = p_ucResult[c] << 1;
+
+ p_ucResult[c] = p_ucResult[c] & 0xfe;
+
+ if (uiBuffer[15 - b] >= 0x80)
+
+ {
+
+ p_ucResult[c] = p_ucResult[c] + 1;
+
+ }
+
+ uiBuffer[15 - b] = uiBuffer[15 - b] << 1;
+
+
+ }
+
+ c++;
+
+ for (b = 0; b < 8; b++)
+
+ {
+
+ p_ucResult[c] = p_ucResult[c] << 1;
+
+ p_ucResult[c] = p_ucResult[c] & 0xfe;
+
+ if (uiBuffer[7 - b] >= 0x80)
+
+ {
+
+ p_ucResult[c] = p_ucResult[c] + 1;
+
+ }
+
+ uiBuffer[7 - b] = uiBuffer[7 - b] << 1;
+
+ }
+
+ c++;
+
+ }
+
+}
+
+void hz816_s270(const unsigned char *p_ucHz, unsigned char *p_ucResult)
+{
+
+ unsigned char a;
+
+ unsigned char b;
+
+ unsigned char c;
+
+ unsigned char uiBuffer[16];
+
+
+ for (a = 0; a < 16; a++)
+
+ {
+
+ uiBuffer[a] = p_ucHz[a];
+
+ }
+
+ c = 0;
+
+ for (a = 0; a < 8; a++)
+
+ {
+
+ for (b = 0; b < 8; b++)
+
+ {
+
+ p_ucResult[c] = p_ucResult[c] << 1;
+
+
+ if ((uiBuffer[b] & 0x01) >= 0x01)
+
+ {
+
+ p_ucResult[c] = p_ucResult[c] + 1;
+
+ }
+
+ uiBuffer[b] = uiBuffer[b] >> 1;
+
+
+ }
+
+ c++;
+
+ for (b = 0; b < 8; b++)
+
+ {
+
+ p_ucResult[c] = p_ucResult[c] << 1;
+
+ if ((uiBuffer[8 + b] & 0x01) >= 0x01)
+
+ {
+
+ p_ucResult[c] = p_ucResult[c] + 1;
+
+ }
+
+ uiBuffer[8 + b] = uiBuffer[8 + b] >> 1;
+
+ }
+
+ c++;
+
+ }
+
+}
+
+void TFT_GC9D01N_Class::DispOneChar( char ord, unsigned int Xstart, unsigned int Ystart, unsigned int TextColor, unsigned int BackColor) // ord:0~95
+{
+ unsigned char hou[16] = {0};
+ unsigned char i, j;
+ unsigned char *p;
+ unsigned char dat;
+ unsigned int index;
+
+
+ index = ord;
+
+ if (index > 95)
+ index = 95;
+
+ index = index * ((FONT_W / 8) * FONT_H);
+
+ p = ascii;
+ p = p + index ;
+
+
+#if LANDSCAPE
+
+ int y = Ystart;
+ y = y - 23;
+ Ystart = abs(y);
+
+
+ BlockWrite(Ystart, Ystart + (FONT_H - 1), Xstart, Xstart + (FONT_W - 1));
+
+ hz816_s90(p, hou);
+
+ for (i = 0; i < (FONT_W / 8 * FONT_H); i++) {
+ dat = hou[i];
+ for (j = 0; j < 8; j++) {
+ if ((dat << j) & 0x80) {
+ WriteOneDot(TextColor);
+ } else {
+ WriteOneDot(BackColor);
+ }
+ }
+ }
+#else
+ BlockWrite(Xstart, Xstart + (FONT_W - 1), Ystart, Ystart + (FONT_H - 1));
+
+
+ for (i = 0; i < (FONT_W / 8 * FONT_H); i++) {
+ dat = *p++;
+ for (j = 0; j < 8; j++) {
+ if ((dat << j) & 0x80) {
+ WriteOneDot(TextColor);
+ } else {
+ WriteOneDot(BackColor);
+ }
+ }
+ }
+
+#endif
+}
+
+void TFT_GC9D01N_Class::DispStr( char *str, unsigned int Xstart, unsigned int Ystart, unsigned int TextColor, unsigned int BackColor)
+{
+
+ while (!(*str == '\0')) {
+ DispOneChar(ToOrd(*str++), Xstart, Ystart, TextColor, BackColor);
+
+#if LANDSCAPE
+ if (Xstart > ((TFT_HEIGHT - 1) - FONT_W)) {
+ //Xstart = 0;
+ //Ystart = Ystart - FONT_H;
+ } else {
+ Xstart = Xstart + FONT_W;
+ }
+
+ if (Ystart > ((TFT_WIDTH - 1) - FONT_H)) {
+ Ystart = 23;
+ }
+#else
+
+
+ if (Xstart > ((TFT_WIDTH - 1) - FONT_W)) {
+ Xstart = 0;
+ Ystart = Ystart + FONT_H;
+ } else {
+ Xstart = Xstart + FONT_W;
+ }
+
+ if (Ystart > ((TFT_HEIGHT - 1) - FONT_H)) {
+ Ystart = 0;
+ }
+
+#endif
+
+
+ }
+ BlockWrite(0, TFT_WIDTH - 1, 0, TFT_HEIGHT - 1);
+}
diff --git a/lib/T-0.99TFT/src/TFT_GC9D01N.h b/lib/T-0.99TFT/src/TFT_GC9D01N.h
new file mode 100644
index 0000000..ace1449
--- /dev/null
+++ b/lib/T-0.99TFT/src/TFT_GC9D01N.h
@@ -0,0 +1,88 @@
+
+#pragma once
+
+#include
+#include
+#include
+#include
+
+#define TFT_WIDTH 40
+#define TFT_HEIGHT 160
+#define CHAR_FONT_W8_H16 //typeface
+
+#define LANDSCAPE 1 //Horizontal screen
+//#define PORTRAIT 2
+
+#define TFT_MISO -1
+#define TFT_MOSI 10//21
+#define TFT_SCLK 20//22
+#define TFT_CS -1//18 // Chip select control pin
+#define TFT_DC 2 // Data Command control pin
+#define TFT_RST -1//27
+#define TFT_BL 8//4
+
+/*
+#define TFT_MISO -1
+#define TFT_MOSI 21
+#define TFT_SCLK 22
+#define TFT_CS 18 // Chip select control pin
+#define TFT_DC 2 // Data Command control pin
+#define TFT_RST 27
+#define TFT_BL 23//4
+*/
+//RGB565
+#define RED 0xF800
+#define GREEN 0x07E0
+#define BLUE 0x001F
+#define WHITE 0xFFFF
+#define BLACK 0x0000
+#define GRAY 0xEF5D
+#define GRAY75 0x39E7
+#define GRAY50 0x7BEF
+#define GRAY25 0xADB5
+
+#ifdef CHAR_FONT_W8_H16
+#define FONT_W 8
+#define FONT_H 16
+#endif
+
+
+#define SPI_FREQUENCY 40000000
+#define DC_C digitalWrite(TFT_DC, LOW)
+#define DC_D digitalWrite(TFT_DC, HIGH)
+#if (TFT_CS==-1)
+#define CS_L ;//digitalWrite(TFT_CS, LOW)
+#define CS_H ;//digitalWrite(TFT_CS, HIGH)
+#else
+#define CS_L digitalWrite(TFT_CS, LOW)
+#define CS_H digitalWrite(TFT_CS, HIGH)
+#endif
+
+#if (TFT_RST==-1)
+#define RST_L ;//digitalWrite(TFT_RST, LOW)
+#define RST_H ;//digitalWrite(TFT_RST, HIGH)
+#else
+#define RST_L digitalWrite(TFT_RST, LOW)
+#define RST_H digitalWrite(TFT_RST, HIGH)
+#endif
+
+
+class TFT_GC9D01N_Class
+{
+public:
+
+ int begin();
+ void begin_tft_write();
+ void end_tft_write();
+ void writedata(uint8_t d);
+ void writecommand(uint8_t c);
+ void lcd_init();
+ void backlight(uint8_t state);
+ void BlockWrite(unsigned int Xstart, unsigned int Xend, unsigned int Ystart, unsigned int Yend) ;
+ void DrawImage(unsigned int Xstart, unsigned int Ystart, unsigned int Xend, unsigned int Yend, uint16_t *color);
+ void DispColor(unsigned int Xstart, unsigned int Ystart, unsigned int Xend, unsigned int Yend, unsigned int color);
+ void WriteOneDot(unsigned int color);
+ void DispOneChar( char ord, unsigned int Xstart, unsigned int Ystart, unsigned int TextColor, unsigned int BackColor);
+ void DispStr( char *str, unsigned int Xstart, unsigned int Ystart, unsigned int TextColor, unsigned int BackColor);
+
+};