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
Adafruit_GFX.h@2:effcedd42f1b, 2014-12-17 (annotated)
- 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?
User | Revision | Line number | New 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 |