All Projects → RobertoBenjami → Stm32_graphics_display_drivers

RobertoBenjami / Stm32_graphics_display_drivers

STM32 LCD drivers (currently: spi(dma), gpio, fsmc(dma), st7735, st7783, ili9325, ili9328, ili9341, ili9486, ili9488, hx8347g)

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Stm32 graphics display drivers

HEIF-converter
Converter for High Efficiency Image Format(HEIF)
Stars: ✭ 24 (-84.11%)
Mutual labels:  jpg, jpeg
Arm Cmake Toolchains
CMake toolchain configurations for ARM
Stars: ✭ 148 (-1.99%)
Mutual labels:  arm, stm32
kconfig
Kconfig for ARM based MCUs
Stars: ✭ 15 (-90.07%)
Mutual labels:  arm, stm32
terminal
Terminal inside the microcontroller (cli for mcu)
Stars: ✭ 31 (-79.47%)
Mutual labels:  arm, stm32
Stm32l4xx Hal
A Hardware abstraction layer for the stm32l432xx series chips written in rust.
Stars: ✭ 65 (-56.95%)
Mutual labels:  arm, stm32
toolchain68k
build a toolchain for cross developement. Supports motorola m68k-elf, avr and arm-none-eabi
Stars: ✭ 18 (-88.08%)
Mutual labels:  arm, stm32
Jpegsnoop
JPEGsnoop: JPEG decoder and detailed analysis
Stars: ✭ 282 (+86.75%)
Mutual labels:  jpeg, jpg
open-watch
An open-source handmade smartwatch. All of the codes, PCBs and schematics are available. ⌚
Stars: ✭ 35 (-76.82%)
Mutual labels:  arm, stm32
Tinygo
Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
Stars: ✭ 9,068 (+5905.3%)
Mutual labels:  arm, stm32
Stm32liquidcrystal
Liquid Crystal Library for STM32
Stars: ✭ 24 (-84.11%)
Mutual labels:  arm, stm32
CML
Fast, safe and easy to use Cortex-M HAL Library, written in C++ 17
Stars: ✭ 17 (-88.74%)
Mutual labels:  arm, stm32
Stm32f0 arm
STM32 Cortex-M0 course
Stars: ✭ 72 (-52.32%)
Mutual labels:  arm, stm32
STM32F10x Servo Library
Servo library with stm developed by the Liek Software Team. We are working on new versions.
Stars: ✭ 14 (-90.73%)
Mutual labels:  arm, stm32
async-stm32f1xx
Abstractions for asynchronous programming on the STM32F1xx family of microcontrollers.
Stars: ✭ 24 (-84.11%)
Mutual labels:  arm, stm32
stm32f7xx-hal
A Rust embedded-hal HAL for all MCUs in the STM32 F7 family
Stars: ✭ 71 (-52.98%)
Mutual labels:  arm, stm32
TinyJPG
images jpg or jpeg compressed and watcher fsnotify
Stars: ✭ 73 (-51.66%)
Mutual labels:  jpg, jpeg
tinyfont
Text library for TinyGo displays
Stars: ✭ 37 (-75.5%)
Mutual labels:  arm, stm32
whatsapp-jpeg-repair
A handy tool to fix jpeg files downloaded from WhatsApp and prevent errors upon opening these files in Adobe Photoshop.
Stars: ✭ 30 (-80.13%)
Mutual labels:  jpg, jpeg
Avem
🚁 轻量级无人机飞控-[Drone]-[STM32]-[PID]-[BLDC]
Stars: ✭ 465 (+207.95%)
Mutual labels:  arm, stm32
Optimise Images
Batch image resizer, optimiser and profiler using ImageMagick convert, OptiPNG, JpegOptim and optional ZopfliPNG, Guetzli and MozJPEG.
Stars: ✭ 64 (-57.62%)
Mutual labels:  jpeg, jpg

STM32Fxxx graphics display drivers

Layer chart, examples circuits and settings:

LCD I/O driver:

  • spi: software SPI, hardware SPI, hardware SPI with DMA
  • gpio8: 8 bit paralell without analog resistive touchscreen
  • gpio16: 16 bit paralell without analog resistive touchscreen
  • fsmc8: 8 bit paralell without analog resistive touchscreen + FSMC or FSMC with DMA
  • fsmc16: 16 bit paralell without analog resistive touchscreen + FSMC or FSMC with DMA
  • ts_gpio8: 8 bit paralell with analog resistive touchscreen
  • ts_fsmc8: 8 bit paralell with analog resistive touchscreen + FSMC or FSMC with DMA
stm family spi gpio8 gpio16 fsmc8 fsmc16 ts_gpio8 ts_fsmc8 note
STM32F0 + + +
STM32F1 + + + +
STM32F2 + + + + + + +
STM32F3 + + +
STM32F4 + + + + + + +
STM32F7 + + +
STM32G0 + + not tested
STM32G4 + + not tested
STM32L0 + + + not tested
STM32L1 + + + not tested
STM32L4 + + + not tested
STM32L5 + + not tested
STM32H7 + +

LCD driver:

  • st7735 (SPI mode tested)
  • st7783 (8 bit paralell mode tested)
  • ili9325 (8 bit paralell mode tested)
  • ili9328 (8 bit paralell mode tested)
  • ili9341 (SPI, 8 bit and 16 bit paralell mode, SPI with LTDC mode tested)
  • ili9486 (8 bit paralell mode tested)
  • ili9488 (SPI, 8 bit paralell mode tested)
  • hx8347g (8 bit paralell mode tested)

App:

  • LcdSpeedTest: Lcd speed test
  • TouchCalib: Touchscreen calibration program
  • Paint: Arduino paint clone
  • JpgViewer: JPG file viewer from SD card or pendrive
  • AnalogClock: Analog Clock demo (printf: the result, i use the SWO pin for ST-LINK Serial Wire Viewer (SWV). See:examples/Src/syscalls.c)
  • 3d filled vector (from https://github.com/cbm80amiga/ST7789_3D_Filled_Vector_Ext)

How to use starting from zero?

  1. Create project for Cubemx
  • setting the RCC (Crystal/ceramic resonator)
  • setting the debug (SYS / serial wire or trace assyn sw)
  • setting the timebase source (i like the basic timer for this)
  • if FSMC : setting the FSMC (chip select, memory type = LCD, Lcd reg select, data = 8 or 16 bits, timing)
  • if SDCARD : setting the SDIO mode, enable the FATFS, FATFS: USE_LFN, MAX_SS = 4096, FS_LOCK = 5, RTC enabled
  • if USB pendrive : setting the USB host, setting the USB power, enable the FATFS, USE_LFN, MAX_SS = 4096, FS_LOCK = 5
  • if JPG : enabled the LIBJPEG
  • setting the clock configuration
  • project settings: project name, toolchain = truestudio, stack size = 0x800
  • generate source code
  1. Truestudio
  • open projects from file system
  • open main.c
  • add USER CODE BEGIN PFP: void mainApp(void);
  • add USER CODE BEGIN WHILE: mainApp();
  • open main.h
  • add USER CODE BEGIN Includes (#include "stm32f1xx_hal.h" or #include "stm32f4xx_hal.h" or ...)
  • add 2 new folder for Src folder (App, Lcd)
  • copy file(s) from App/... to App
  • copy 4 or 7 files from Drivers to Lcd (lcd.h, bmp.h, stm32_adafruit_lcd.h / c, if touch: ts.h, stm32_adafruit_ts.h / c)
  • copy Fonts folder to Lcd folder
  • copy io driver to Lcd folder (lcd_io_...h / c or lcdts_io...h / c or...)
  • copy lcd driver to Lcd folder (st7735.h / c or ili9325.h /c or...)
  • if printf to SWO : copy syscalls.c to Src folder
  • setting the configuration the io driver header file (pin settings, speed settings etc...)
  • setting the LCD configuration (orientation, touchscreen)
  • add include path : Src/Lcd
  • setting the compile options (Enable paralell build, optimalization)
  • compile, run ...

Example (please unzip the app you like):

  • f103c8t_app: (stm32f103c8t HAL applications, cubemx, truestudio)
  • f103c8t_app_rtos: (stm32f103c8t HAL-FreeRtos applications, 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 HAL applications, FSMC 16 bit, external 1MB SRAM, cubemx, truestudio)

How to adding the SWO support to cheap stlink ?

https://lujji.github.io/blog/stlink-clone-trace/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].