Drivers Drivers STM32FXXX Graphics Display
Диаграмма слоев, примеры схемы и настройки:
- Lcd_drv.pdf (https://github.com/robertobenjami/stm32_graphics_display_drivers/blob/master/lcd_drv.pdf)
ЖК -ввод -вывод и драйвер ввода -вывода с сенсорным экраном:
- LCD_IO_SPI: Software SPI, аппаратный SPI, аппаратный SPI с DMA
- LCD_IO_GPIO8: 8 -битный паралелл без аналогового резистивного сенсорного экрана
- LCD_IO_GPIO16: 16 -битный паралелл без аналогового резистивного сенсорного экрана
- LCD_IO_FSMC8: 8 -битный паралелл без аналогового резистивного сенсорного экрана + FSMC или FSMC с DMA
- LCD_IO_FSMC16: 16 -битный паралелл без аналогового резистивного сенсорного экрана + FSMC или FSMC с DMA
- LCDTS_IO_GPIO8: 8 -битный паралелл с аналоговым резистивным сенсорным экраном
- LCDTS_IO_FSMC8: 8 -битный паралелл с аналоговым резистивным сенсорным экраном + FSMC или FSMC с DMA
- TS_XPT2046: XPT2046 Драйвер с сенсорным экраном, программный и аппаратный SPI, 4 или 5 проводов
- LCDTS_IO_SPI_XPT2046: LCD и XPT2046 В Common SPI, программном и аппаратном SPI с DMA (DMA только в ЖК -дисплее)
| Семья STM | SPI | GPIO8 | GPIO16 | FSMC8 | FSMC16 | ts_gpio8 | TS_FSMC8 | TS_XPT2046 | spi_xpt2046 | примечание |
|---|
| STM32F0 | + | + | + | | | | | | | |
| STM32F1 | + | + | + | | | + | | + | | |
| STM32F2 | + | + | + | + | + | + | + | + | + | |
| STM32F3 | + | + | + | | | | | | | |
| STM32F4 | + | + | + | + | + | + | + | + | + | |
| STM32F7 | + | + | + | | | | | | | |
| STM32G0 | | + | + | | | | | | | не тестируется |
| STM32G4 | | + | + | | | | | | | не тестируется |
| STM32L0 | + | + | + | | | | | | | не тестируется |
| STM32L1 | + | + | + | | | | | | | |
| STM32L4 | + | + | + | | | | | | | не тестируется |
| STM32L5 | | + | + | | | | | | | не тестируется |
| STM32H7 | | + | + | | | | | | | |
ЖК -драйвер:
- ST7735 (протестирован режим SPI)
- ST7783 (8 -битный режим Paralell протестирован)
- ILI9325 (8 -битный паралелл протестирован)
- ILI9328 (8 -битный режим Paralell проверен)
- ILI9341 (SPI, 8 -битный и 16 -битный режим Paralell, SPI с проверенным режимом LTDC)
- ILI9486 (8 -битный режим паралелла протестирован)
- ILI9488 (SPI, 8 -битный паралелл протестирован)
- HX8347G (8 -битный режим Paralell проверен)
Приложение:
- LcdSpeedTest: ЖК -тест на скорость
- TouchCalib: программа калибровки сенсорного экрана
- Краска: клон краски Arduino
- JPGViewer: JPG File Viewer от SD Card или Pendrive
- Аналоговый урок: демо-демо, аналоговые часы (Printf: Результат, я использую SWO PIN-код для просмотра ST-Link Serial Wire (SWV). См.: Примеры/SRC/syscalls.c)
- 3d заполненный вектор (от https://github.com/cbm80amiga/st7789_3d_filled_vector_ext)
Как использовать, начиная с нуля?
- STM32F103C8 - SPI: https://www.youtube.com/watch?v=4nz1vwuqwhw
- STM32F103C8 - GPIO8: https://www.youtube.com/watch?v=2Op4vgotuja
- STM32F103C8 - GPIO8 с сенсорным экраном: https://www.youtube.com/watch?v=qucctzabd2g
- STM32F407ZET - FSMC16, SDCARD, JPG: https://www.youtube.com/watch?v=HFEKMZXT2L8
- STM32F429ZI Discovery - SPI -DMA, USBHOST Pendrive, JPG: https://www.youtube.com/watch?v=QI8CTNJGWFW
- Создать проект для Cubemx или Cubeide
- Установка RCC (Crystal/Ceramic Reonator)
- Установка отладки (Sys / Serial Wire или Trace Assyn SW)
- Установка источника временного базы (мне нравится базовый таймер для этого)
- Если FSMC: настройка FSMC (Select Chip, тип памяти = LCD, LCD Reg Select, Data = 8 или 16 бит, время)
- Если SDCARD: Установка режима SDIO, включите FATFS, FATFS: use_lfn, max_ss = 4096, fs_lock = 5, rtc включен
- Если USB Pendrive: Установите USB -хост, установите мощность USB, включите FATFS, use_lfn, max_ss = 4096, fs_lock = 5
- Если JPG: включил Libjpeg
- Настройка конфигурации часов
- Настройки проекта: Имя проекта, Toolchain = Truestudio, Sack Size = 0x800
- генерировать исходный код
- Truestudio или Cubeide
- Открыть проекты из файловой системы (только Truestudio)
- Open Main.c
- Добавить код пользователя Begin PFP: void mainApp (void);
- Добавить код пользователя начинается while: mainapp ();
- Open Main.h
- Добавить код пользователя Begin Begin Sucte (#include "stm32f1xx_hal.h" или #include "stm32f4xx_hal.h" или ...)
- Добавить 2 новой папки для папки SRC (приложение, ЖК -дисплей)
- Скопировать файл (ы) из приложения/... в приложение
- Скопируйте 4 или 7 файлов от драйверов в LCD (Lcd.H, BMP.H, STM32_ADAFRUIT_LCD.H / C, если Touch: Ts.H, STM32_ADAFRIT_TS.H / C)
- Скопируйте шрифты в папку LCD
- Скопируйте драйвер IO в папку LCD (LCD_IO _... H / C или LCDTS_IO ... H / C или ...)
- Скопируйте ЖК -драйвер в папку LCD (ST7735.H / C или ILI9325.H / C или ...)
- Если Printf to SWO: Скопируйте syscalls.c в папку src
- Настройка конфигурации файла заголовка драйвера IO (настройки PIN -кода, настройки скорости и т. Д.)
- Настройка конфигурации ЖК -дисплея (ориентация, сенсорный экран)
- Добавить включить путь: SRC/LCD
- Установка параметров компиляции (включить сборку Paralell, оптимизация)
- Скомпилируйте, беги ...
Пример (пожалуйста, расстегните разарки приложения, которое вам нравится):
- F103C8T_APP: (STM32F103C8T HAL Applications, Cubemx, Truestudio)
- F103C8T_APP_RTOS: (STM32F103C8T Приложения Hal-Freertos, Cubemx, Truestudio)
- F407Vet_App: (STM32F407VET HAL-Applications, Cubemx, Truestudio)
- F407VET_APP_RTOS: (STM32F407VET HAL-FREERTOS Applications, Cubemx, Truestudio)
- F407VET_APP_FSMC: (STM32F407VET HAL Applications, FSMC, Cubemx, Truestudio)
- F407VET_APP_RTOS_FSMC: (STM32F407VET HAL-FREERTOS Applications, FSMC, Cubemx, Truestudio)
- F407VET_APP_FSMC16: (STM32F407VET HAL Applications, FSMC 16 BIT, Cubemx, Truestudio)
- F407ZET_APP_FSMC16_EXTSRAM: (STM32F407ZET APPLICATION
Как добавить поддержку SWO в дешевый Stlink?
https://lujji.github.io/blog/stlink-clone-trace/