STM32FXXX Graphics Afficher les pilotes
Tableau de couche, exemples de circuits et de paramètres:
- LCD_DRV.pdf (https://github.com/robertobenjami/stm32_graphics_display_drivers/blob/master/lcd_drv.pdf)
E / S et pilote d'E / S à écran tactile:
- LCD_IO_SPI: Software SPI, matériel SPI, matériel SPI avec DMA
- LCD_IO_GPIO8: 8 bits paralell sans écran tactile résistif analogique
- LCD_IO_GPIO16: paralell 16 bits sans écran tactile résistif analogique
- LCD_IO_FSMC8: 8 bits paralell sans écran tactile résistif analogique + FSMC ou FSMC avec DMA
- LCD_IO_FSMC16: paralell 16 bits sans écran tactile résistif analogique + FSMC ou FSMC avec DMA
- LCDTS_IO_GPIO8: Paralell 8 bits avec écran tactile résistif analogique
- LCDTS_IO_FSMC8: Paralell 8 bits avec écran tactile résistif analogique + FSMC ou FSMC avec DMA
- TS_XPT2046: XPT2046 SPI SPI, logiciel et matériel
- LCDTS_IO_SPI_XPT2046: LCD et XPT2046 dans SPI commun, logiciel et matériel SPI avec DMA (DMA uniquement dans LCD)
| famille STM | spice | gpio8 | gpio16 | FSMC8 | FSMC16 | ts_gpio8 | ts_fsmc8 | ts_xpt2046 | SPI_XPT2046 | note |
|---|
| STM32F0 | + | + | + | | | | | | | |
| STM32F1 | + | + | + | | | + | | + | | |
| STM32F2 | + | + | + | + | + | + | + | + | + | |
| STM32F3 | + | + | + | | | | | | | |
| STM32F4 | + | + | + | + | + | + | + | + | + | |
| STM32F7 | + | + | + | | | | | | | |
| STM32G0 | | + | + | | | | | | | non testé |
| STM32G4 | | + | + | | | | | | | non testé |
| STM32L0 | + | + | + | | | | | | | non testé |
| STM32L1 | + | + | + | | | | | | | |
| STM32L4 | + | + | + | | | | | | | non testé |
| STM32L5 | | + | + | | | | | | | non testé |
| STM32H7 | | + | + | | | | | | | |
Conducteur LCD:
- ST7735 (mode SPI testé)
- ST7783 (mode paralell 8 bits testé)
- ili9325 (mode paralell 8 bits testé)
- ili9328 (mode paralell 8 bits testé)
- Ili9341 (mode SPI, 8 bits et 16 bits paralell, SPI avec mode LTDC testé)
- ili9486 (mode paralell 8 bits testé)
- Ili9488 (SPI, mode paralell 8 bits testé)
- HX8347G (mode paralell 8 bits testé)
App:
- LCDSPEEDTEST: Test de vitesse LCD
- TouchCalib: programme d'étalonnage à écran tactile
- Peinture: Arduino Paint Clone
- JPGViewer: Vue de fichiers JPG à partir de la carte SD ou de Pendrive
- AnalogClock: démo d'horloge analogique (printf: le résultat, j'utilise la broche SWO pour la visionneuse de fil série ST-LINK (SWV). Voir: Exemples / SRC / Syscaux.c)
- Vector rempli 3D (à partir de https://github.com/cbm80amiga/st7789_3d_fild_vector_ext)
Comment utiliser à partir de zéro?
- STM32F103C8 - SPI: https://www.youtube.com/watch?v=4nz1vwuqwhw
- STM32F103C8 - GPIO8: https://www.youtube.com/watch?v=2op4vgotuja
- STM32F103C8 - GPIO8 avec écran tactile: 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
- Créer un projet pour Cumbemx ou Cubeide
- Réglage du RCC (Résonateur Crystal / Ceramic)
- Réglage du débogage (SYS / Fire série ou Trace Assyn SW)
- Définition de la source de la base de temps (j'aime le temporisateur de base pour cela)
- Si FSMC: Réglage du FSMC (Chip Select, Memory Type = LCD, LCD REG SELECT, DATA = 8 ou 16 bits, timing)
- Si SDCARD: Définition du mode SDIO, activez les FATFS, FATFS: use_lfn, max_ss = 4096, fs_lock = 5, RTC activé
- Si USB Pendrive: définissant l'hôte USB, définissant la puissance USB, activez les FATFS, use_lfn, max_ss = 4096, fs_lock = 5
- Si jpg: a activé le libjpeg
- Définition de la configuration de l'horloge
- Paramètres du projet: Nom du projet, Chain d'outils = TrueStudio, Size de pile = 0x800
- générer du code source
- TrueStudio ou Cubeide
- Ouvrez les projets du système de fichiers (seulement TrueStudio)
- Open Main.c
- Ajouter le code utilisateur Begin PFP: void mainApp (void);
- Ajouter le code utilisateur Begin while: mainApp ();
- Open Main.h
- Ajouter un code utilisateur Begin inclut (#include "stm32f1xx_hal.h" ou #include "stm32f4xx_hal.h" ou ...)
- Ajouter 2 nouveaux dossiers pour le dossier SRC (App, LCD)
- Copier les fichiers de l'application / ... vers l'application
- Copier 4 ou 7 fichiers des pilotes vers l'écran LCD (LCD.H, BMP.H, STM32_ADAFRUSE_LCD.H / C, IF Touch: Ts.H, STM32_ADAFRUIT_TS.H / C)
- Copier le dossier des polices dans le dossier LCD
- Copiez le pilote IO dans le dossier LCD (LCD_IO _... H / C ou LCDTS_IO ... H / C ou ...)
- Copier le pilote LCD dans le dossier LCD (ST7735.H / C ou ILI9325.H / C ou ...)
- Si printf to swo: copier les syscaux.c dans le dossier SRC
- Réglage de la configuration du fichier d'en-tête du pilote IO (paramètres de broches, paramètres de vitesse, etc.)
- Définition de la configuration LCD (orientation, écran tactile)
- Ajouter Inclure le chemin: SRC / LCD
- Définition des options de compilation (activer Paralell Build, Optimalisation)
- compiler, courir ...
Exemple (veuillez décompresser l'application que vous aimez):
- F103C8T_APP: (STM32F103C8T HAL APPLICATIONS, CUBEMX, TrueStudio)
- F103C8T_APP_RTOS: (STM32F103C8T HAL-FREERTOS Applications, Cumbemx, TrueStudio)
- F407VET_APP: (STM32F407Vet Hal-Applications, Cumbemx, TrueStudio)
- F407VET_APP_RTOS: (STM32F407VET HAL-FREERTOS Applications, Cumbemx, TrueStudio)
- F407VET_APP_FSMC: (STM32F407VET HAL APPLICATIONS, FSMC, CUBEMX, TrueStudio)
- F407VET_APP_RTOS_FSMC: (STM32F407VET HAL-FREERTO
- F407VET_APP_FSMC16: (STM32F407VET HAL APPLICATIONS, FSMC 16 BIT, CUBEMX, TRUESTUDIO)
- F407ZET_APP_FSMC16_EXTSRAM: (STM32F407ZET HAL APPLICATIONS, FSMC 16 bits, 1MB externe SRAM, CUBEMX, TRUEStudio)
Comment ajouter le support SWO à STLink bon marché?
https://lujji.github.io/blog/stlink-clone-trace/