Console Serial IO con display OLED e seriale asincrona

Dependencies:   mbed BufferedSerial AserialIOFuncLib SSD1306 TerminalPlusV2

Fork of SerialIO by Max Scordamaglia

Console Serial IO con display OLED e seriale asincrona

Committer:
MaxScorda
Date:
Fri Sep 25 00:18:01 2015 +0000
Revision:
34:9f52d82995ea
Parent:
21:a867c9454f21
Risolto problema led

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MaxScorda 10:5c406bde1edf 1 //Oled
MaxScorda 10:5c406bde1edf 2 #include "ssd1306.h"
MaxScorda 10:5c406bde1edf 3 #include "standard_font.h"
MaxScorda 10:5c406bde1edf 4 #include "bold_font.h"
MaxScorda 10:5c406bde1edf 5
MaxScorda 10:5c406bde1edf 6 /* definitions for ST Nucleo L152RE */
MaxScorda 34:9f52d82995ea 7 #define CSEL PB_6 // CS D10 PB_6
MaxScorda 34:9f52d82995ea 8 #define RST PC_7 // D9 rst pin9 PC_7
MaxScorda 34:9f52d82995ea 9 #define DCMD PA_9 // DC D8 dc pin8 PA_9
MaxScorda 34:9f52d82995ea 10 #define CLK PB_3 // CLK D13 d0 pin13 PA_5 //cambio necesario per far funzionare led
MaxScorda 34:9f52d82995ea 11 #define DATA PB_5 // MOSI D11 d1 pin11 PA_7 //cambio necesario per far funzionare led
MaxScorda 10:5c406bde1edf 12
MaxScorda 10:5c406bde1edf 13
MaxScorda 10:5c406bde1edf 14 SSD1306 oled(CSEL, RST, DCMD, CLK, DATA); // STM32 Nucleo
MaxScorda 10:5c406bde1edf 15
MaxScorda 10:5c406bde1edf 16
MaxScorda 10:5c406bde1edf 17 static const unsigned char oldlogo16_glcd_bmp[] = {
MaxScorda 10:5c406bde1edf 18 0x00, 0xc0, // B00000000, B11000000,
MaxScorda 10:5c406bde1edf 19 0x01, 0xc0, // B00000001, B11000000,
MaxScorda 10:5c406bde1edf 20 0x01, 0xc0, // B00000001, B11000000,
MaxScorda 10:5c406bde1edf 21 0x03, 0xe0, // B00000011, B11100000,
MaxScorda 10:5c406bde1edf 22 0xf3, 0xe0, // B11110011, B11100000,
MaxScorda 10:5c406bde1edf 23 0xfe, 0xf8, // B11111110, B11111000,
MaxScorda 10:5c406bde1edf 24 0x7e, 0xff, // B01111110, B11111111,
MaxScorda 10:5c406bde1edf 25 0x33, 0x9f, // B00110011, B10011111,
MaxScorda 10:5c406bde1edf 26 0x1f, 0xfc, // B00011111, B11111100,
MaxScorda 10:5c406bde1edf 27 0x0d, 0x70, // B00001101, B01110000,
MaxScorda 10:5c406bde1edf 28 0x1b, 0xa0, // B00011011, B10100000,
MaxScorda 10:5c406bde1edf 29 0x3f, 0xe0, // B00111111, B11100000,
MaxScorda 10:5c406bde1edf 30 0x3f, 0xf0, // B00111111, B11110000,
MaxScorda 10:5c406bde1edf 31 0x7c, 0xf0, // B01111100, B11110000,
MaxScorda 10:5c406bde1edf 32 0x70, 0x70, // B01110000, B01110000,
MaxScorda 10:5c406bde1edf 33 0x00, 0x30
MaxScorda 10:5c406bde1edf 34 }; // B00000000, B00110000 };
MaxScorda 10:5c406bde1edf 35
MaxScorda 10:5c406bde1edf 36 static const unsigned char dog16_glcd_bmp[] = {
MaxScorda 10:5c406bde1edf 37 0x18, 0x18, // B00000000, B11000000,
MaxScorda 10:5c406bde1edf 38 0x26, 0x64, // B00000001, B11000000,
MaxScorda 10:5c406bde1edf 39 0x42, 0x42, // B00000001, B11000000,
MaxScorda 10:5c406bde1edf 40 0x41, 0x82, // B00000011, B11100000,
MaxScorda 10:5c406bde1edf 41 0x40, 0x2, // B11110011, B11100000,
MaxScorda 10:5c406bde1edf 42 0x80, 0x1 , // B11111110, B11111000,
MaxScorda 10:5c406bde1edf 43 0x8C, 0x31, // B01111110, B11111111,
MaxScorda 10:5c406bde1edf 44 0x8C, 0x31, // B00110011, B10011111,
MaxScorda 10:5c406bde1edf 45 0x40, 0x2 , // B00011111, B11111100,
MaxScorda 10:5c406bde1edf 46 0x41, 0x82, // B00001101, B01110000,
MaxScorda 10:5c406bde1edf 47 0x21, 0x84, // B00011011, B10100000,
MaxScorda 10:5c406bde1edf 48 0x10, 0x8 , // B00111111, B11100000,
MaxScorda 10:5c406bde1edf 49 0x13, 0xC8, // B00111111, B11110000,
MaxScorda 10:5c406bde1edf 50 0x8 , 0x10, // B01111100, B11110000,
MaxScorda 10:5c406bde1edf 51 0x4, 0x20, // B01110000, B01110000,
MaxScorda 10:5c406bde1edf 52 0x3 , 0xC0
MaxScorda 10:5c406bde1edf 53 };
MaxScorda 10:5c406bde1edf 54
MaxScorda 10:5c406bde1edf 55 static const unsigned char logo16_glcd_bmp[] = {
MaxScorda 10:5c406bde1edf 56 0x1 , 0x80, // B00000000, B11000000,
MaxScorda 10:5c406bde1edf 57 0x1 , 0xC0, // B00000001, B11000000,
MaxScorda 10:5c406bde1edf 58 0x1 , 0xE0, // B00000001, B11000000,
MaxScorda 10:5c406bde1edf 59 0x1 , 0xB0, // B00000011, B11100000,
MaxScorda 10:5c406bde1edf 60 0x1 , 0x98, // B11110011, B11100000,
MaxScorda 10:5c406bde1edf 61 0x1 , 0x8C, // B11111110, B11111000,
MaxScorda 10:5c406bde1edf 62 0x1 , 0x86, // B01111110, B11111111,
MaxScorda 10:5c406bde1edf 63 0xFF, 0x83, // B00110011, B10011111,
MaxScorda 10:5c406bde1edf 64 0xFF, 0x8F, // B00011111, B11111100,
MaxScorda 10:5c406bde1edf 65 0x60, 0x10, // B00001101, B01110000,
MaxScorda 10:5c406bde1edf 66 0x30, 0x20, // B00011011, B10100000,
MaxScorda 10:5c406bde1edf 67 0x18, 0x4F, // B00111111, B11100000,
MaxScorda 10:5c406bde1edf 68 0xC , 0xF2, // B00111111, B11110000,
MaxScorda 10:5c406bde1edf 69 0x6 , 0x4 , // B01111100, B11110000,
MaxScorda 10:5c406bde1edf 70 0x3, 0x8 , // B01110000, B01110000,
MaxScorda 10:5c406bde1edf 71 0x1 , 0xF0
MaxScorda 10:5c406bde1edf 72 };
MaxScorda 10:5c406bde1edf 73 //---------- oled -----------------------
MaxScorda 10:5c406bde1edf 74
MaxScorda 10:5c406bde1edf 75 bool initDisp(int disptype)
MaxScorda 10:5c406bde1edf 76 {
MaxScorda 10:5c406bde1edf 77 bool ret=true;
MaxScorda 10:5c406bde1edf 78 switch (disptype) {
MaxScorda 10:5c406bde1edf 79 case 0: //oled
MaxScorda 11:b57dee0f344e 80 oled.initialise();
MaxScorda 11:b57dee0f344e 81 oled.clear();
MaxScorda 11:b57dee0f344e 82 oled.set_contrast(255); // max contrast
MaxScorda 11:b57dee0f344e 83 oled.update();
MaxScorda 10:5c406bde1edf 84 break;
MaxScorda 10:5c406bde1edf 85 case 1: //lcd
MaxScorda 10:5c406bde1edf 86 break;
MaxScorda 10:5c406bde1edf 87 }
MaxScorda 10:5c406bde1edf 88 return ret;
MaxScorda 10:5c406bde1edf 89 }
MaxScorda 11:b57dee0f344e 90
MaxScorda 17:7c8c37fbec9f 91 void bannerDisp(int disptype)
MaxScorda 17:7c8c37fbec9f 92 {
MaxScorda 17:7c8c37fbec9f 93 switch (disptype) {
MaxScorda 17:7c8c37fbec9f 94 case 0: //oled
MaxScorda 17:7c8c37fbec9f 95 oled.clear();
MaxScorda 17:7c8c37fbec9f 96 oled.printf("-_-_ Boot screen _-_-\n\r");
MaxScorda 17:7c8c37fbec9f 97 oled.printf("Nucleo Scorda IO Test\n\r");
MaxScorda 17:7c8c37fbec9f 98 oled.update();
MaxScorda 17:7c8c37fbec9f 99 break;
MaxScorda 17:7c8c37fbec9f 100 case 1: //lcd
MaxScorda 17:7c8c37fbec9f 101 break;
MaxScorda 17:7c8c37fbec9f 102 }
MaxScorda 17:7c8c37fbec9f 103 }
MaxScorda 17:7c8c37fbec9f 104
MaxScorda 11:b57dee0f344e 105 void setFontDisp(int disptype, char fontType)
MaxScorda 11:b57dee0f344e 106 {
MaxScorda 11:b57dee0f344e 107 switch (disptype) {
MaxScorda 11:b57dee0f344e 108 case 0: //oled
MaxScorda 11:b57dee0f344e 109 if (fontType=='N') oled.set_font(standard_font, 6);
MaxScorda 11:b57dee0f344e 110 if (fontType=='B') oled.set_font(bold_font, 8);
MaxScorda 11:b57dee0f344e 111 if (fontType=='D') oled.set_double_height_text(1);
MaxScorda 11:b57dee0f344e 112 break;
MaxScorda 11:b57dee0f344e 113 case 1: //lcd
MaxScorda 11:b57dee0f344e 114 break;
MaxScorda 11:b57dee0f344e 115 }
MaxScorda 11:b57dee0f344e 116 }
MaxScorda 11:b57dee0f344e 117
MaxScorda 11:b57dee0f344e 118 void printDisp(int disptype, char *format)
MaxScorda 11:b57dee0f344e 119 {
MaxScorda 11:b57dee0f344e 120 switch (disptype) {
MaxScorda 11:b57dee0f344e 121 case 0: //oled
MaxScorda 11:b57dee0f344e 122 oled.printf(format);
MaxScorda 11:b57dee0f344e 123 oled.update();
MaxScorda 11:b57dee0f344e 124 break;
MaxScorda 11:b57dee0f344e 125 case 1: //lcd
MaxScorda 11:b57dee0f344e 126 break;
MaxScorda 11:b57dee0f344e 127 }
MaxScorda 21:a867c9454f21 128 }
MaxScorda 21:a867c9454f21 129
MaxScorda 21:a867c9454f21 130 void inverseDisp(int disptype)
MaxScorda 21:a867c9454f21 131 {
MaxScorda 21:a867c9454f21 132 static bool boolf=0;
MaxScorda 21:a867c9454f21 133 switch (disptype) {
MaxScorda 21:a867c9454f21 134 case 0: //oled
MaxScorda 21:a867c9454f21 135 boolf=!boolf;
MaxScorda 21:a867c9454f21 136 oled.set_inverse(boolf);
MaxScorda 21:a867c9454f21 137 //oled.update();
MaxScorda 21:a867c9454f21 138 break;
MaxScorda 21:a867c9454f21 139 case 1: //lcd
MaxScorda 21:a867c9454f21 140 break;
MaxScorda 21:a867c9454f21 141 }
MaxScorda 11:b57dee0f344e 142 }