Первая итерация
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# Драйвер дисплея DS_ILI9341 (Параллельный интерфейс 8080)
|
||||
|
||||
Библиотека для управления цветными TFT-дисплеями на базе популярного контроллера **ILI9341** (разрешение 240x320, 16-битный цвет RGB565).
|
||||
|
||||
В отличие от стандартных SPI-решений, данный драйвер использует **8-битную параллельную шину данных (Intel 8080)**, что обеспечивает максимальную скорость обновления кадров (FPS) за счет одновременной передачи целого байта за один такт линии `WR`.
|
||||
|
||||
## 📌 Особенности реализации
|
||||
* **Параллельная архитектура**: Полноценное управление шиной данных через независимые пины `D0`–`D7`.
|
||||
* **ООП-стиль управления**: Все дескрипторы портов и пинов инкапсулируются внутри единой структуры дисплея, позволяя гибко переназначать выводы без изменения кода самой библиотеки.
|
||||
* **Стабильный запуск**: Встроенная аппаратная задержка `HAL_Delay(500)` при инициализации гарантирует корректную стабилизацию внутренних цепей питания контроллера дисплея перед подачей конфигурационных команд.
|
||||
|
||||
---
|
||||
|
||||
## 🔌 Схема подключения (8-битный режим)
|
||||
|
||||
Драйвер требует для работы **13 свободных GPIO-выводов** микроконтроллера STM32. Все пины настраиваются в CubeMX как `GPIO_Output` (High Speed).
|
||||
|
||||
| Вывод дисплея | Описание шины | Назначение |
|
||||
| :--- | :--- | :--- |
|
||||
| **CS** | Chip Select | Выбор чипа (активен в 0) |
|
||||
| **RS / DC** | Register Select | Выбор: 0 — Команда, 1 — Данные |
|
||||
| **WR** | Write Echo | Строб записи данных (по спаду/подъему) |
|
||||
| **RD / RQ** | Read Request | Строб чтения данных (если используется) |
|
||||
| **RST** | Reset | Аппаратный сброс контроллера дисплея |
|
||||
| **D0 ... D7** | Data Bus 0-7 | 8-битная параллельная шина данных |
|
||||
|
||||
---
|
||||
|
||||
## 💻 Пример использования в `main.c`
|
||||
|
||||
Из-за параллельного интерфейса вызов инициализации требует явного указания всех портов и пинов, выделенных под шину:
|
||||
|
||||
```c
|
||||
#include "DS_ILI9341.h"
|
||||
|
||||
DS_ILI9341 tft_display;
|
||||
|
||||
int main(void) {
|
||||
// ... Автоматическая инициализация HAL, SystemClock, GPIO ...
|
||||
|
||||
/* Высокоуровневое связывание параллельного интерфейса дисплея с STM32 */
|
||||
DS_ILI9341_Init(&tft_display,
|
||||
GPIOC, GPIO_PIN_9, // Port & Pin CS
|
||||
GPIOA, GPIO_PIN_0, // D0
|
||||
GPIOA, GPIO_PIN_1, // D1
|
||||
GPIOA, GPIO_PIN_2, // D2
|
||||
GPIOA, GPIO_PIN_3, // D3
|
||||
GPIOA, GPIO_PIN_4, // D4
|
||||
GPIOA, GPIO_PIN_5, // D5
|
||||
GPIOA, GPIO_PIN_6, // D6
|
||||
GPIOA, GPIO_PIN_7, // D7
|
||||
GPIOC, GPIO_PIN_10, // RQ (Read)
|
||||
GPIOC, GPIO_PIN_11, // RS (Command/Data)
|
||||
GPIOC, GPIO_PIN_12, // RST (Reset)
|
||||
GPIOC, GPIO_PIN_8 // WR (Write)
|
||||
);
|
||||
|
||||
// После инициализации можно вызывать функции заливки и вывода текста:
|
||||
// DS_ILI9341_Clear(&tft_display, 0x0000);
|
||||
|
||||
while (1) {
|
||||
// Основной цикл
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 Справочник API функций
|
||||
|
||||
### `void DS_ILI9341_Init(DS_ILI9341 *Display, ... 25 пинов ...)`
|
||||
Выполняет первичную привязку структуры управления к физическим ножкам микроконтроллера STM32.
|
||||
* Очищает линии связи и подготавливает шину к передаче параллельных данных.
|
||||
* Содержит стартовую блокирующую задержку на 500 мс для безопасного включения экрана.
|
||||
Reference in New Issue
Block a user