Henrique Rosa
/
ILI9341_01_PAR8_Teste_V3
Testanto funções Display
main.cpp@1:a5ccd53612ea, 2021-04-21 (annotated)
- Committer:
- silviosz
- Date:
- Wed Apr 21 14:54:37 2021 +0000
- Revision:
- 1:a5ccd53612ea
- Parent:
- 0:d4d4998d71d5
- Child:
- 2:f603020cd6ec
ILI9341 display controller; parallel connection (Arduino Shield); NUCLEO-F103RB tested (2021-04-21) = success!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
silviosz | 0:d4d4998d71d5 | 1 | // link: |
silviosz | 0:d4d4998d71d5 | 2 | // https://os.mbed.com/users/davidprentice/code/Nucleo_dir_L152//file/d88d2ad55fac/main.cpp/ |
silviosz | 0:d4d4998d71d5 | 3 | // Committer: davidprentice |
silviosz | 0:d4d4998d71d5 | 4 | // Date: 19 months ago |
silviosz | 1:a5ccd53612ea | 5 | // 2021-04-21 |
silviosz | 1:a5ccd53612ea | 6 | // Testado com sucesso na NUCLEO-F103RB + ILI9341 Arduino Shield |
silviosz | 1:a5ccd53612ea | 7 | // interface paralela >>> ver "dataBus" |
silviosz | 1:a5ccd53612ea | 8 | // usando mbed 2.0 |
silviosz | 0:d4d4998d71d5 | 9 | |
silviosz | 0:d4d4998d71d5 | 10 | #include "Arduino.h" |
silviosz | 0:d4d4998d71d5 | 11 | |
silviosz | 0:d4d4998d71d5 | 12 | #include <MCUFRIEND_kbv.h> |
silviosz | 0:d4d4998d71d5 | 13 | MCUFRIEND_kbv tft; |
silviosz | 0:d4d4998d71d5 | 14 | |
silviosz | 0:d4d4998d71d5 | 15 | Serial pc(SERIAL_TX, SERIAL_RX); |
silviosz | 0:d4d4998d71d5 | 16 | |
silviosz | 0:d4d4998d71d5 | 17 | // Assign human-readable names to some common 16-bit color values: |
silviosz | 0:d4d4998d71d5 | 18 | #define BLACK 0x0000 |
silviosz | 0:d4d4998d71d5 | 19 | #define BLUE 0x001F |
silviosz | 0:d4d4998d71d5 | 20 | #define RED 0xF800 |
silviosz | 0:d4d4998d71d5 | 21 | #define GREEN 0x07E0 |
silviosz | 0:d4d4998d71d5 | 22 | #define CYAN 0x07FF |
silviosz | 0:d4d4998d71d5 | 23 | #define MAGENTA 0xF81F |
silviosz | 0:d4d4998d71d5 | 24 | #define YELLOW 0xFFE0 |
silviosz | 0:d4d4998d71d5 | 25 | #define WHITE 0xFFFF |
silviosz | 0:d4d4998d71d5 | 26 | #define GRAY 0x8410 |
silviosz | 0:d4d4998d71d5 | 27 | |
silviosz | 0:d4d4998d71d5 | 28 | uint16_t version = MCUFRIEND_KBV_H_; |
silviosz | 0:d4d4998d71d5 | 29 | |
silviosz | 0:d4d4998d71d5 | 30 | void setup() |
silviosz | 0:d4d4998d71d5 | 31 | { |
silviosz | 0:d4d4998d71d5 | 32 | uint16_t ID = tft.readID(); // |
silviosz | 0:d4d4998d71d5 | 33 | pc.printf("\nI have run this on a NUCLEO-F072\n"); |
silviosz | 0:d4d4998d71d5 | 34 | pc.printf("Please run it on your NUCLEO-L152\n"); |
silviosz | 0:d4d4998d71d5 | 35 | pc.printf("Found ID = 0x%04X\n", ID); |
silviosz | 0:d4d4998d71d5 | 36 | tft.begin(ID); |
silviosz | 0:d4d4998d71d5 | 37 | } |
silviosz | 0:d4d4998d71d5 | 38 | |
silviosz | 0:d4d4998d71d5 | 39 | void loop() |
silviosz | 0:d4d4998d71d5 | 40 | { |
silviosz | 0:d4d4998d71d5 | 41 | static uint8_t aspect = 0; |
silviosz | 0:d4d4998d71d5 | 42 | const char *aspectname[] = { |
silviosz | 0:d4d4998d71d5 | 43 | "PORTRAIT", "LANDSCAPE", "PORTRAIT_REV", "LANDSCAPE_REV" |
silviosz | 0:d4d4998d71d5 | 44 | }; |
silviosz | 0:d4d4998d71d5 | 45 | const char *colorname[] = { "BLUE", "GREEN", "RED", "GRAY" }; |
silviosz | 0:d4d4998d71d5 | 46 | uint16_t colormask[] = { BLUE, GREEN, RED, GRAY }; |
silviosz | 0:d4d4998d71d5 | 47 | uint16_t ID = tft.readID(); // |
silviosz | 0:d4d4998d71d5 | 48 | tft.setRotation(aspect); |
silviosz | 0:d4d4998d71d5 | 49 | int width = tft.width(); |
silviosz | 0:d4d4998d71d5 | 50 | int height = tft.height(); |
silviosz | 0:d4d4998d71d5 | 51 | tft.fillScreen(colormask[aspect]); |
silviosz | 0:d4d4998d71d5 | 52 | tft.drawRect(0, 0, width, height, WHITE); |
silviosz | 0:d4d4998d71d5 | 53 | tft.drawRect(32, 32, width - 64, height - 64, WHITE); |
silviosz | 0:d4d4998d71d5 | 54 | tft.setTextSize(2); |
silviosz | 0:d4d4998d71d5 | 55 | tft.setTextColor(BLACK); |
silviosz | 0:d4d4998d71d5 | 56 | tft.setCursor(40, 40); |
silviosz | 0:d4d4998d71d5 | 57 | tft.print("ID=0x"); |
silviosz | 0:d4d4998d71d5 | 58 | tft.println(ID, HEX); |
silviosz | 0:d4d4998d71d5 | 59 | if (ID == 0xD3D3) tft.print(" w/o"); |
silviosz | 0:d4d4998d71d5 | 60 | tft.setCursor(40, 70); |
silviosz | 0:d4d4998d71d5 | 61 | tft.print(aspectname[aspect]); |
silviosz | 0:d4d4998d71d5 | 62 | tft.setCursor(40, 100); |
silviosz | 0:d4d4998d71d5 | 63 | tft.print(width); |
silviosz | 0:d4d4998d71d5 | 64 | tft.print(" x "); |
silviosz | 0:d4d4998d71d5 | 65 | tft.print(height); |
silviosz | 0:d4d4998d71d5 | 66 | tft.setTextColor(WHITE); |
silviosz | 0:d4d4998d71d5 | 67 | tft.setCursor(40, 130); |
silviosz | 0:d4d4998d71d5 | 68 | tft.print(colorname[aspect]); |
silviosz | 0:d4d4998d71d5 | 69 | tft.setCursor(40, 160); |
silviosz | 0:d4d4998d71d5 | 70 | tft.setTextSize(1); |
silviosz | 0:d4d4998d71d5 | 71 | tft.print("MCUFRIEND_KBV_H_ = "); |
silviosz | 0:d4d4998d71d5 | 72 | tft.print(version); |
silviosz | 0:d4d4998d71d5 | 73 | if (++aspect > 3) aspect = 0; |
silviosz | 0:d4d4998d71d5 | 74 | delay(5000); |
silviosz | 0:d4d4998d71d5 | 75 | } |
silviosz | 0:d4d4998d71d5 | 76 | |
silviosz | 0:d4d4998d71d5 | 77 | uint32_t millis(void) |
silviosz | 0:d4d4998d71d5 | 78 | { |
silviosz | 0:d4d4998d71d5 | 79 | static Timer t; |
silviosz | 0:d4d4998d71d5 | 80 | static int first = 1; |
silviosz | 0:d4d4998d71d5 | 81 | if (first) first = 0, t.start(); |
silviosz | 0:d4d4998d71d5 | 82 | return t.read_ms(); |
silviosz | 0:d4d4998d71d5 | 83 | } |
silviosz | 0:d4d4998d71d5 | 84 | |
silviosz | 0:d4d4998d71d5 | 85 | uint32_t micros(void) |
silviosz | 0:d4d4998d71d5 | 86 | { |
silviosz | 0:d4d4998d71d5 | 87 | static Timer t; |
silviosz | 0:d4d4998d71d5 | 88 | static int first = 1; |
silviosz | 0:d4d4998d71d5 | 89 | if (first) first = 0, t.start(); |
silviosz | 0:d4d4998d71d5 | 90 | return t.read_us(); |
silviosz | 0:d4d4998d71d5 | 91 | } |
silviosz | 0:d4d4998d71d5 | 92 | |
silviosz | 0:d4d4998d71d5 | 93 | void main(void) |
silviosz | 0:d4d4998d71d5 | 94 | { |
silviosz | 0:d4d4998d71d5 | 95 | setup(); |
silviosz | 0:d4d4998d71d5 | 96 | while (1) { |
silviosz | 0:d4d4998d71d5 | 97 | loop(); |
silviosz | 0:d4d4998d71d5 | 98 | } |
silviosz | 0:d4d4998d71d5 | 99 | } |