STM32FXXX Graphics Display -Treiber
Layer -Diagramm, Beispielkreise und Einstellungen:
- Lcd_drv.pdf (https://github.com/robertobenjami/stm32_graphics_display_drivers/blob/master/lcd_drv.pdf)
LCD I/O und Touchscreen -E/A -Treiber:
- LCD_IO_SPI: Software SPI, Hardware SPI, Hardware SPI mit DMA
- LCD_IO_GPIO8: 8 BIT PARALELL Ohne analoge Widerstandscreme
- LCD_IO_GPIO16: 16 BIT Paralell ohne analoge Widerstands -Touchscreen
- LCD_IO_FSMC8: 8 -Bit -Paralell ohne analoges Widerstandscreen + FSMC oder FSMC mit DMA
- LCD_IO_FSMC16: 16 Bit Paralell ohne analoge Widerstands -Touchscreen + FSMC oder FSMC mit DMA
- LCDTS_IO_GPIO8: 8 BIT Paralell mit analogem Widerstands -Touchscreen
- LCDTS_IO_FSMC8: 8 BIT Paralell mit analogem Widerstands -Touchscreen + FSMC oder FSMC mit DMA
- TS_XPT2046: XPT2046 Touchscreen -Treiber, Software und Hardware -SPI, 4 oder 5 Drähte
- LCDTS_IO_SPI_XPT2046: LCD und XPT2046 in gemeinsamer SPI, Software und Hardware SPI mit DMA (DMA nur in LCD)
| STM -Familie | spi | gpio8 | gpio16 | FSMC8 | FSMC16 | ts_gpio8 | TS_FSMC8 | TS_XPT2046 | SPI_XPT2046 | Notiz |
|---|
| STM32F0 | + | + | + | | | | | | | |
| STM32F1 | + | + | + | | | + | | + | | |
| STM32F2 | + | + | + | + | + | + | + | + | + | |
| STM32F3 | + | + | + | | | | | | | |
| STM32F4 | + | + | + | + | + | + | + | + | + | |
| STM32F7 | + | + | + | | | | | | | |
| STM32G0 | | + | + | | | | | | | nicht getestet |
| STM32G4 | | + | + | | | | | | | nicht getestet |
| STM32L0 | + | + | + | | | | | | | nicht getestet |
| STM32L1 | + | + | + | | | | | | | |
| STM32L4 | + | + | + | | | | | | | nicht getestet |
| STM32L5 | | + | + | | | | | | | nicht getestet |
| STM32H7 | | + | + | | | | | | | |
LCD -Treiber:
- ST7735 (SPI -Modus getestet)
- ST7783 (8 -Bit -Paralell -Modus getestet)
- ILI9325 (8 -Bit -Paralell -Modus getestet)
- ILI9328 (8 -Bit -Paralell -Modus getestet)
- ILI9341 (SPI, 8 -Bit- und 16 -Bit -Paralell -Modus, SPI mit dem getesteten LTDC -Modus)
- ILI9486 (8 -Bit -Paralell -Modus getestet)
- ILI9488 (SPI, 8 -Bit -Paralell -Modus getestet)
- HX8347G (8 -Bit -Paralell -Modus getestet)
App:
- LCDSpeedtest: LCD -Geschwindigkeitstest
- Touchcalib: Touchscreen -Kalibrierungsprogramm
- Farbe: Arduino -Farbklon
- JPGViewer: JPG -Datei -Viewer von SD -Karte oder Pendrive
- Analogclock: Analog Clock Demo (printf: Das Ergebnis, ich verwende den SWO-Pin für ST-Link-Seriendraht-Betrachter (SWV). Siehe: Beispiele/src/syscalls.c)
- 3D gefüllter Vektor (von https://github.com/cbm80amiga/st7789_3d_filled_vector_ext)
Wie kann ich von Null beginnen?
- STM32F103C8 - SPI: https://www.youtube.com/watch?v=4nz1vwuqWhw
- STM32F103C8 - GPIO8: https://www.youtube.com/watch?v=2op4vgotuja
- STM32F103C8 - GPIO8 mit Touchscreen: https://www.youtube.com/watch?v=qycctzabd2g
- 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
- Erstellen Sie ein Projekt für Cubemx oder Cubeide
- Einstellen des RCC (Kristall/Keramikresonator)
- Festlegen des Debugs (SYS / Seriendraht oder Trace Assyn SW)
- Festlegen der Zeitbasisquelle (ich mag den Basis -Timer dafür)
- Wenn FSMC: Festlegen des FSMC (Chip -Select, Speichertyp = LCD, LCD Reg Select, Data = 8 oder 16 Bit, Timing)
- Wenn SDCARD: Einlegen des SDIO -Modus, aktivieren Sie die FATFs, FATFs: Use_Lfn, max_ss = 4096, fs_lock = 5, RTC aktiviert
- Wenn USB Pendrive: Einstellen des USB -Host
- Wenn JPG: aktiviert dem libjpeg
- Einstellen der Taktkonfiguration
- Projekteinstellungen: Projektname, Toolchain = Truestudio, Stack Size = 0x800
- Quellcode generieren
- TrueStudio oder Cubeide
- Öffnen Sie Projekte aus dem Dateisystem (nur Truestudio)
- Open main.c
- Benutzercode begin PFP: void mainApp (void);
- Benutzercode fügen Sie zu, während: mainApp ();
- Open main.h
- Benutzercode fügen Sie include (#include "STM32F1XX_HAL.H" oder #include "STM32F4XX_HAL.H" oder ...)
- Fügen Sie 2 neuer Ordner für den SRC -Ordner hinzu (App, LCD)
- Kopieren Sie die Datei (n) von App/... zu App
- Kopieren Sie 4 oder 7 Dateien von Treibern zu LCD (LCD.H., Bmp.H, STM32_ADAFURUIT_LCD.H / C, falls Touch: Ts.H, STM32_ADAFURUIT_TS.H / C)
- Kopieren Sie die Schriftarten Ordner in den LCD -Ordner
- Kopieren Sie den IO -Treiber in den LCD -Ordner (LCD_IO _... H / C oder LCDTS_IO ... H / C oder ...)
- Kopieren Sie den LCD -Treiber in den LCD -Ordner (ST7735.H / C oder ILI9325.H / C oder ...)
- Wenn Sie nach SWO printf: kopieren Sie syscalls.c in den SRC -Ordner
- Festlegen der Konfiguration Die IO -Treiber -Header -Datei (PIN -Einstellungen, Geschwindigkeitseinstellungen usw.)
- Festlegen der LCD -Konfiguration (Orientierung, Touchscreen)
- Hinzufügen integrieren Pfad: SRC/LCD
- Festlegen der Kompilierungsoptionen (Paralell Build, Optimalisierung)
- kompilieren, rennen ...
Beispiel (Bitte entpacken Sie die App, die Sie mögen):
- F103C8T_App: (STM32F103C8T HAL -Anwendungen, Cubemx, Truestudio)
- F103C8T_APP_RTOS: (STM32F103C8T HAL-FREERTOS-Anwendungen, Cubemx, Truestudio)
- F407VET_APP: (STM32F407VET HAL-ANAPPLIKATIONEN, CUBEMX, Truestudio)
- F407VET_APP_RTOS: (STM32F407VET HAL-FREERTOS-Anwendungen, Cubemx, Truestudio)
- F407VET_APP_FSMC: (STM32F407VET HAL -Anwendungen, FSMC, Cubemx, Truestudio)
- F407VET_APP_RTOS_FSMC: (STM32F407VET HAL-FREERTOS-Anwendungen, FSMC, Cubemx, Truestudio)
- F407VET_APP_FSMC16: (STM32F407VET HAL -Anwendungen, FSMC 16 Bit, Cubemx, Truestudio)
- f407zet_app_fsmc16_extsram: (STM32F407ZET HAL -Anwendungen, FSMC 16 Bit, externe 1 MB SRAM, Cubemx, Truestudio)
Wie füge ich die SWO -Unterstützung zu billigem Stlink hinzu?
https://lujji.github.io/blog/stlink-clone-trace/