ILI9340 Library based on the Arduino version from Adafruit. It has been tested with a custom STM32F103C8 board.

Porting of the ILI9340 Library from Adafruit. It has been tested on a custom board based on a STM32F103C8 microcontroller.

Please, see the Wiki page on how to use the library

Committer:
gmoralis
Date:
Wed Dec 17 07:57:28 2014 +0000
Revision:
2:effcedd42f1b
Parent:
0:0bf2453a67ba
Added glcdfont.c which I forgot to include in the initial release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gmoralis 0:0bf2453a67ba 1 // Modified for mbed
gmoralis 0:0bf2453a67ba 2 // by Georgios Moralis
gmoralis 0:0bf2453a67ba 3
gmoralis 0:0bf2453a67ba 4 #ifndef _ADAFRUIT_GFX_H
gmoralis 0:0bf2453a67ba 5 #define _ADAFRUIT_GFX_H
gmoralis 0:0bf2453a67ba 6
gmoralis 0:0bf2453a67ba 7 //#include "stm32f10x.h"
gmoralis 0:0bf2453a67ba 8 //#include "stm32f10x_conf.h"
gmoralis 0:0bf2453a67ba 9 //#include "stm32f10x_spi.h"
gmoralis 0:0bf2453a67ba 10 //#include "core_cm3.h"
gmoralis 0:0bf2453a67ba 11 //#include "stdint.h"
gmoralis 0:0bf2453a67ba 12 #include "stdint.h"
gmoralis 0:0bf2453a67ba 13
gmoralis 0:0bf2453a67ba 14 #define swap(a, b) { int16_t t = a; a = b; b = t; }
gmoralis 0:0bf2453a67ba 15
gmoralis 0:0bf2453a67ba 16 class Adafruit_GFX {
gmoralis 0:0bf2453a67ba 17
gmoralis 0:0bf2453a67ba 18 public:
gmoralis 0:0bf2453a67ba 19
gmoralis 0:0bf2453a67ba 20 Adafruit_GFX(int16_t w, int16_t h); // Constructor
gmoralis 0:0bf2453a67ba 21
gmoralis 0:0bf2453a67ba 22 // This MUST be defined by the subclass:
gmoralis 0:0bf2453a67ba 23 virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0;
gmoralis 0:0bf2453a67ba 24
gmoralis 0:0bf2453a67ba 25 // These MAY be overridden by the subclass to provide device-specific
gmoralis 0:0bf2453a67ba 26 // optimized code. Otherwise 'generic' versions are used.
gmoralis 0:0bf2453a67ba 27 virtual void
gmoralis 0:0bf2453a67ba 28 drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color),
gmoralis 0:0bf2453a67ba 29 drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color),
gmoralis 0:0bf2453a67ba 30 drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color),
gmoralis 0:0bf2453a67ba 31 drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color),
gmoralis 0:0bf2453a67ba 32 fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color),
gmoralis 0:0bf2453a67ba 33 fillScreen(uint16_t color),
gmoralis 0:0bf2453a67ba 34 invertDisplay(char i);
gmoralis 0:0bf2453a67ba 35
gmoralis 0:0bf2453a67ba 36 // These exist only with Adafruit_GFX (no subclass overrides)
gmoralis 0:0bf2453a67ba 37 void
gmoralis 0:0bf2453a67ba 38 drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color),
gmoralis 0:0bf2453a67ba 39 drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,
gmoralis 0:0bf2453a67ba 40 uint16_t color),
gmoralis 0:0bf2453a67ba 41 fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color),
gmoralis 0:0bf2453a67ba 42 fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,
gmoralis 0:0bf2453a67ba 43 int16_t delta, uint16_t color),
gmoralis 0:0bf2453a67ba 44 drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
gmoralis 0:0bf2453a67ba 45 int16_t x2, int16_t y2, uint16_t color),
gmoralis 0:0bf2453a67ba 46 fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
gmoralis 0:0bf2453a67ba 47 int16_t x2, int16_t y2, uint16_t color),
gmoralis 0:0bf2453a67ba 48 drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,
gmoralis 0:0bf2453a67ba 49 int16_t radius, uint16_t color),
gmoralis 0:0bf2453a67ba 50 fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,
gmoralis 0:0bf2453a67ba 51 int16_t radius, uint16_t color),
gmoralis 0:0bf2453a67ba 52 drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap,
gmoralis 0:0bf2453a67ba 53 int16_t w, int16_t h, uint16_t color),
gmoralis 0:0bf2453a67ba 54 drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap,
gmoralis 0:0bf2453a67ba 55 int16_t w, int16_t h, uint16_t color, uint16_t bg),
gmoralis 0:0bf2453a67ba 56 drawXBitmap(int16_t x, int16_t y, const uint8_t *bitmap,
gmoralis 0:0bf2453a67ba 57 int16_t w, int16_t h, uint16_t color),
gmoralis 0:0bf2453a67ba 58 drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color,
gmoralis 0:0bf2453a67ba 59 uint16_t bg, uint8_t size),
gmoralis 0:0bf2453a67ba 60 setCursor(int16_t x, int16_t y),
gmoralis 0:0bf2453a67ba 61 setTextColor(uint16_t c),
gmoralis 0:0bf2453a67ba 62 setTextColor(uint16_t c, uint16_t bg),
gmoralis 0:0bf2453a67ba 63 setTextSize(uint8_t s),
gmoralis 0:0bf2453a67ba 64 setTextWrap(char w),
gmoralis 0:0bf2453a67ba 65 setRotation(uint8_t r);
gmoralis 0:0bf2453a67ba 66
gmoralis 0:0bf2453a67ba 67 #if ARDUINO >= 100
gmoralis 0:0bf2453a67ba 68 virtual size_t write(uint8_t);
gmoralis 0:0bf2453a67ba 69 #else
gmoralis 0:0bf2453a67ba 70 virtual void write(uint8_t);
gmoralis 0:0bf2453a67ba 71 #endif
gmoralis 0:0bf2453a67ba 72
gmoralis 0:0bf2453a67ba 73 int16_t height(void) const;
gmoralis 0:0bf2453a67ba 74 int16_t width(void) const;
gmoralis 0:0bf2453a67ba 75
gmoralis 0:0bf2453a67ba 76 uint8_t getRotation(void) const;
gmoralis 0:0bf2453a67ba 77
gmoralis 0:0bf2453a67ba 78 protected:
gmoralis 0:0bf2453a67ba 79 const int16_t
gmoralis 0:0bf2453a67ba 80 WIDTH, HEIGHT; // This is the 'raw' display w/h - never changes
gmoralis 0:0bf2453a67ba 81 int16_t
gmoralis 0:0bf2453a67ba 82 _width, _height, // Display w/h as modified by current rotation
gmoralis 0:0bf2453a67ba 83 cursor_x, cursor_y;
gmoralis 0:0bf2453a67ba 84 uint16_t
gmoralis 0:0bf2453a67ba 85 textcolor, textbgcolor;
gmoralis 0:0bf2453a67ba 86 uint8_t
gmoralis 0:0bf2453a67ba 87 textsize,
gmoralis 0:0bf2453a67ba 88 rotation;
gmoralis 0:0bf2453a67ba 89 char
gmoralis 0:0bf2453a67ba 90 wrap; // If set, 'wrap' text at right edge of display
gmoralis 0:0bf2453a67ba 91 };
gmoralis 0:0bf2453a67ba 92
gmoralis 0:0bf2453a67ba 93 #endif // _ADAFRUIT_GFX_H
gmoralis 0:0bf2453a67ba 94