Git Product home page Git Product logo

stm32-ili9341's Introduction

STM32-ILI9341

Simple driver for ILI9341 320x240 TFT LCD with Touchscreen for STM32 microcontrollers

Requires no DMA or Interrupts while still maintaining very fast screen draws. See performance analysis below

The intent of this library is to provide a really simple way to get ILI9341 projects started without complex methods. Basic SPI and GPIO inputs/Outputs are enough to use the library.

Contains:

  • main driver for initialization and basic functions "ILI9341_STM32_Driver"
  • GFX driver for advanced functionality (fonts, pictures)
  • Touchscreen driver
  • Example project with CubeMX built for STM32F746ZG Nucleo board
    • Example usage of functions

Downloading project and setting up example based on STM32F7:

  • Extract the project into a folder and run CubeMX project
  • Generate code using CubeMX
  • Add ILI9341 folder to flash->configure flash tools->C/C++ ->Include paths
  • Add files in ILI9341 folder to project (Add existing files to group...)

Alternatively download entire project in .rar file. Paths might be broken and might require re-linking. ¯\(ツ)

ILI9341 Driver library for STM32

While there are other libraries for ILI9341 they mostly require either interrupts, DMA or both for fast drawing The intent of this library is to offer a simple yet still reasonably fast alternatives for those that do not wish to use interrupts or DMA in their projects.

Library is written for STM32 HAL library and supports STM32CUBEMX. To use the library with Cube software you need to tick the box that generates peripheral initialization code in their own respective .c and .h file

Performance

Settings:

  • SPI @ 50MHz
  • STM32F746ZG Nucleo board
  • Redraw entire screen

Theoretical maximum FPS with 50Mhz SPI calculated to be 40.69 FPS

320x240 = 76800 pixels, each pixel contains 16bit colour information (2x8) Theoretical Max FPS: 1/((320x240x16)/50000000)

With ART Accelerator, instruction prefetch, CPU ICACHE and CPU DCACHE enabled:

  • FPS: 39.62
  • SPI utilization: 97.37%
  • MB/Second: 6.09

With ART Accelerator, instruction prefetch, CPU ICACHE and CPU DCACHE disabled:

  • FPS: 35.45
  • SPI utilization: 87.12%
  • MB/Second: 5.44

ART Accelerator, instruction prefetch, CPU ICACHE and CPU DCACHE settings found in MXCUBE under "System-> CORTEX M7 button"

stm32-ili9341's People

Contributors

martnak avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.