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