#include #include #include #include #include #include #include "myLcd.h" #include "board.h" #define LCD_DEVICE_ADDR 0x78 #define SENSOR_DEVICE_ADDR 0x44<<1 static uint8_t commandType = 0; static uint8_t const Chinese_text_16x16[]= { "深圳市沃进科技有限公司→←↑↓¤" }; static uint8_t const Chinese_code_16x16[]= { 0x08,0x06,0x40,0x31,0x00,0x70,0x44,0x48,0x50,0x43,0x50,0x48,0x44,0x70,0x00,0x00, 0x20,0x20,0x7E,0x80,0x04,0x84,0x88,0x90,0xA0,0xFF,0xA0,0x90,0x88,0x84,0x04,0x00,/*"深",0*/ 0x04,0x04,0x04,0xFF,0x04,0x04,0x00,0xFF,0x00,0x00,0x7F,0x00,0x00,0xFF,0x00,0x00, 0x08,0x0C,0x08,0xF0,0x10,0x11,0x06,0xF8,0x00,0x00,0xFC,0x00,0x00,0xFF,0x00,0x00,/*"圳",1*/ 0x00,0x10,0x11,0x11,0x11,0x11,0x91,0x5F,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x00, 0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x08,0x04,0xF8,0x00,0x00,0x00,/*"市",2*/ 0x08,0x06,0x40,0x31,0x00,0x21,0x21,0x21,0x21,0x7F,0x41,0xC1,0x41,0x01,0x01,0x00, 0x20,0x20,0x7E,0x80,0x01,0x02,0x04,0x18,0x60,0x80,0x60,0x18,0x04,0x02,0x01,0x00,/*"沃",3*/ 0x02,0x02,0x42,0x33,0x00,0x01,0x11,0x11,0xFF,0x11,0x11,0xFF,0x11,0x11,0x01,0x00, 0x00,0x02,0x04,0xF8,0x04,0x02,0x0A,0x32,0xC2,0x02,0x02,0xFA,0x02,0x02,0x02,0x00,/*"进",4*/ 0x24,0x24,0x25,0x7F,0xC5,0x44,0x00,0x44,0x33,0x00,0x00,0xFF,0x00,0x00,0x00,0x00, 0x10,0x60,0x80,0xFF,0x00,0x80,0x20,0x20,0x20,0x20,0x20,0xFF,0x40,0x40,0x40,0x00,/*"科",5*/ 0x08,0x08,0x08,0xFF,0x08,0x09,0x10,0x11,0x11,0x11,0xFF,0x11,0x11,0x11,0x10,0x00, 0x20,0x22,0x41,0xFE,0x80,0x01,0x01,0x02,0xC2,0x34,0x08,0x14,0x62,0x81,0x01,0x00,/*"技",6*/ 0x20,0x20,0x20,0x21,0x27,0x3C,0xE4,0x24,0x24,0x24,0x24,0x27,0x20,0x20,0x20,0x00, 0x20,0x40,0x80,0x00,0xFF,0x90,0x90,0x90,0x90,0x92,0x91,0xFE,0x00,0x00,0x00,0x00,/*"有",7*/ 0x00,0x7F,0x44,0x5A,0x61,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,0x00, 0x00,0xFF,0x20,0x10,0xE0,0x00,0xFF,0x02,0x04,0xC0,0x30,0x28,0x44,0x82,0x02,0x00,/*"限",8*/ 0x00,0x01,0x02,0x04,0x18,0x60,0x01,0x00,0xE0,0x18,0x04,0x02,0x01,0x00,0x00,0x00, 0x80,0x00,0x04,0x0E,0x14,0x64,0x84,0x04,0x04,0x24,0x1C,0x06,0x00,0x80,0x80,0x00,/*"公",9*/ 0x00,0x08,0x48,0x49,0x49,0x49,0x49,0x49,0x49,0x48,0x48,0x40,0x7F,0x00,0x00,0x00, 0x00,0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFC,0x00,0x02,0x01,0xFE,0x00,0x00,0x00,/*"司",10*/ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x05,0x07,0x03,0x03,0x01,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x40,0xC0,0x80,0x80,0x00,0x00,0x00,/*"→",11*/ 0x01,0x01,0x03,0x03,0x07,0x05,0x09,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00, 0x00,0x00,0x80,0x80,0xC0,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"←",12*/ 0x00,0x00,0x00,0x00,0x02,0x0C,0x38,0xFF,0x38,0x0C,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"↑",13*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x40,0x30,0x1C,0xFF,0x1C,0x30,0x40,0x00,0x00,0x00,0x00,0x00,/*"↓",14*/ 0x00,0x40,0x20,0x17,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x08,0x17,0x20,0x40,0x00, 0x00,0x02,0x04,0xE8,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0xE8,0x04,0x02,0x00,/*"¤",15*/ }; const uint8_t ascii_table_8x16[95][16]= { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/ 0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCC,0x00,0x00,0x00,0x00,/*"!",1*/ 0x00,0x08,0x30,0x40,0x08,0x30,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*""",2*/ 0x00,0x02,0x03,0x1E,0x02,0x03,0x1E,0x00,0x00,0x20,0xFC,0x20,0x20,0xFC,0x20,0x00,/*"#",3*/ 0x00,0x0E,0x11,0x11,0x3F,0x10,0x0C,0x00,0x00,0x18,0x04,0x04,0xFF,0x84,0x78,0x00,/*"$",4*/ 0x0F,0x10,0x0F,0x01,0x06,0x18,0x00,0x00,0x00,0x8C,0x30,0xC0,0x78,0x84,0x78,0x00,/*"%",5*/ 0x00,0x0F,0x10,0x11,0x0E,0x00,0x00,0x00,0x78,0x84,0xC4,0x34,0x98,0xE4,0x84,0x08,/*"&",6*/ 0x00,0x48,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"'",7*/ 0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,/*"(",8*/ 0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,/*")",9*/ 0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,/*"*",10*/ 0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xF0,0x80,0x80,0x80,/*"+",11*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0E,0x00,0x00,0x00,0x00,0x00,/*",",12*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,/*"-",13*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,/*".",14*/ 0x00,0x00,0x00,0x00,0x03,0x1C,0x20,0x00,0x00,0x06,0x18,0xE0,0x00,0x00,0x00,0x00,/*"/",15*/ 0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,0x00,0xF0,0x08,0x04,0x04,0x08,0xF0,0x00,/*"0",16*/ 0x00,0x00,0x08,0x08,0x1F,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,/*"1",17*/ 0x00,0x0E,0x10,0x10,0x10,0x10,0x0F,0x00,0x00,0x0C,0x14,0x24,0x44,0x84,0x0C,0x00,/*"2",18*/ 0x00,0x0C,0x10,0x10,0x10,0x11,0x0E,0x00,0x00,0x18,0x04,0x84,0x84,0x44,0x38,0x00,/*"3",19*/ 0x00,0x00,0x01,0x02,0x0C,0x1F,0x00,0x00,0x00,0x60,0xA0,0x24,0x24,0xFC,0x24,0x24,/*"4",20*/ 0x00,0x1F,0x11,0x11,0x11,0x10,0x10,0x00,0x00,0x98,0x04,0x04,0x04,0x88,0x70,0x00,/*"5",21*/ 0x00,0x07,0x08,0x11,0x11,0x09,0x00,0x00,0x00,0xF0,0x88,0x04,0x04,0x04,0xF8,0x00,/*"6",22*/ 0x00,0x18,0x10,0x10,0x11,0x16,0x18,0x00,0x00,0x00,0x00,0x7C,0x80,0x00,0x00,0x00,/*"7",23*/ 0x00,0x0E,0x11,0x10,0x10,0x11,0x0E,0x00,0x00,0x38,0x44,0x84,0x84,0x44,0x38,0x00,/*"8",24*/ 0x00,0x0F,0x10,0x10,0x10,0x08,0x07,0x00,0x00,0x80,0x48,0x44,0x44,0x88,0xF0,0x00,/*"9",25*/ 0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,/*":",26*/ 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,/*";",27*/ 0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x00,/*"<",28*/ 0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x00,/*"=",29*/ 0x00,0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x80,0x00,/*">",30*/ 0x00,0x0E,0x12,0x10,0x10,0x11,0x0E,0x00,0x00,0x00,0x00,0x0C,0xEC,0x00,0x00,0x00,/*"?",31*/ 0x03,0x0C,0x13,0x14,0x17,0x08,0x07,0x00,0xE0,0x18,0xE4,0x14,0xF4,0x14,0xE8,0x00,/*"@",32*/ 0x00,0x00,0x03,0x1C,0x07,0x00,0x00,0x00,0x04,0x3C,0xC4,0x40,0x40,0xE4,0x1C,0x04,/*"A",33*/ 0x10,0x1F,0x11,0x11,0x11,0x0E,0x00,0x00,0x04,0xFC,0x04,0x04,0x04,0x88,0x70,0x00,/*"B",34*/ 0x03,0x0C,0x10,0x10,0x10,0x10,0x1C,0x00,0xE0,0x18,0x04,0x04,0x04,0x08,0x10,0x00,/*"C",35*/ 0x10,0x1F,0x10,0x10,0x10,0x08,0x07,0x00,0x04,0xFC,0x04,0x04,0x04,0x08,0xF0,0x00,/*"D",36*/ 0x10,0x1F,0x11,0x11,0x17,0x10,0x08,0x00,0x04,0xFC,0x04,0x04,0xC4,0x04,0x18,0x00,/*"E",37*/ 0x10,0x1F,0x11,0x11,0x17,0x10,0x08,0x00,0x04,0xFC,0x04,0x00,0xC0,0x00,0x00,0x00,/*"F",38*/ 0x03,0x0C,0x10,0x10,0x10,0x1C,0x00,0x00,0xE0,0x18,0x04,0x04,0x44,0x78,0x40,0x00,/*"G",39*/ 0x10,0x1F,0x10,0x00,0x00,0x10,0x1F,0x10,0x04,0xFC,0x84,0x80,0x80,0x84,0xFC,0x04,/*"H",40*/ 0x00,0x10,0x10,0x1F,0x10,0x10,0x00,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00,/*"I",41*/ 0x00,0x00,0x10,0x10,0x1F,0x10,0x10,0x00,0x03,0x01,0x01,0x01,0xFE,0x00,0x00,0x00,/*"J",42*/ 0x10,0x1F,0x11,0x03,0x14,0x18,0x10,0x00,0x04,0xFC,0x04,0x80,0x64,0x1C,0x04,0x00,/*"K",43*/ 0x10,0x1F,0x10,0x00,0x00,0x00,0x00,0x00,0x04,0xFC,0x04,0x04,0x04,0x04,0x0C,0x00,/*"L",44*/ 0x10,0x1F,0x1F,0x00,0x1F,0x1F,0x10,0x00,0x04,0xFC,0x80,0x7C,0x80,0xFC,0x04,0x00,/*"M",45*/ 0x10,0x1F,0x0C,0x03,0x00,0x10,0x1F,0x10,0x04,0xFC,0x04,0x00,0xE0,0x18,0xFC,0x00,/*"N",46*/ 0x07,0x08,0x10,0x10,0x10,0x08,0x07,0x00,0xF0,0x08,0x04,0x04,0x04,0x08,0xF0,0x00,/*"O",47*/ 0x10,0x1F,0x10,0x10,0x10,0x10,0x0F,0x00,0x04,0xFC,0x84,0x80,0x80,0x80,0x00,0x00,/*"P",48*/ 0x07,0x08,0x10,0x10,0x10,0x08,0x07,0x00,0xF0,0x08,0x14,0x14,0x0C,0x0A,0xF2,0x00,/*"Q",49*/ 0x10,0x1F,0x11,0x11,0x11,0x11,0x0E,0x00,0x04,0xFC,0x04,0x00,0xC0,0x30,0x0C,0x04,/*"R",50*/ 0x00,0x0E,0x11,0x10,0x10,0x10,0x1C,0x00,0x00,0x1C,0x04,0x84,0x84,0x44,0x38,0x00,/*"S",51*/ 0x18,0x10,0x10,0x1F,0x10,0x10,0x18,0x00,0x00,0x00,0x04,0xFC,0x04,0x00,0x00,0x00,/*"T",52*/ 0x10,0x1F,0x10,0x00,0x00,0x10,0x1F,0x10,0x00,0xF8,0x04,0x04,0x04,0x04,0xF8,0x00,/*"U",53*/ 0x10,0x1E,0x11,0x00,0x00,0x13,0x1C,0x10,0x00,0x00,0xE0,0x1C,0x70,0x80,0x00,0x00,/*"V",54*/ 0x10,0x1F,0x00,0x1F,0x00,0x1F,0x10,0x00,0x00,0xC0,0x7C,0x80,0x7C,0xC0,0x00,0x00,/*"W",55*/ 0x10,0x18,0x16,0x01,0x01,0x16,0x18,0x10,0x04,0x0C,0x34,0xC0,0xC0,0x34,0x0C,0x04,/*"X",56*/ 0x10,0x1C,0x13,0x00,0x13,0x1C,0x10,0x00,0x00,0x00,0x04,0xFC,0x04,0x00,0x00,0x00,/*"Y",57*/ 0x08,0x10,0x10,0x10,0x13,0x1C,0x10,0x00,0x04,0x1C,0x64,0x84,0x04,0x04,0x18,0x00,/*"Z",58*/ 0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,/*"[",59*/ 0x00,0x20,0x1C,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x1C,0x03,0x00,/*"\",60*/ 0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,/*"]",61*/ 0x00,0x00,0x20,0x40,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"^",62*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,/*"_",63*/ 0x00,0x40,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"`",64*/ 0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x98,0x24,0x24,0x48,0xFC,0x04,0x00,/*"a",65*/ 0x08,0x0F,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0xFC,0x88,0x04,0x04,0x88,0x70,0x00,/*"b",66*/ 0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x70,0x88,0x04,0x04,0x04,0x88,0x00,/*"c",67*/ 0x00,0x00,0x01,0x01,0x01,0x09,0x0F,0x00,0x00,0xF8,0x04,0x04,0x04,0x08,0xFC,0x04,/*"d",68*/ 0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0xF8,0x24,0x24,0x24,0x24,0xE8,0x00,/*"e",69*/ 0x00,0x01,0x01,0x07,0x09,0x09,0x04,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00,/*"f",70*/ 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0xD6,0x29,0x29,0x29,0xC9,0x06,0x00,/*"g",71*/ 0x08,0x0F,0x00,0x01,0x01,0x01,0x00,0x00,0x04,0xFC,0x84,0x00,0x00,0x04,0xFC,0x04,/*"h",72*/ 0x00,0x01,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00,/*"i",73*/ 0x00,0x00,0x00,0x01,0x19,0x19,0x00,0x00,0x00,0x03,0x01,0x01,0x01,0xFE,0x00,0x00,/*"j",74*/ 0x08,0x0F,0x00,0x00,0x01,0x01,0x01,0x00,0x04,0xFC,0x24,0x60,0x94,0x0C,0x04,0x00,/*"k",75*/ 0x00,0x08,0x08,0x1F,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00,/*"l",76*/ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x04,0xFC,0x04,0x00,0xFC,0x04,0x00,0xFC,/*"m",77*/ 0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x00,0x04,0xFC,0x84,0x00,0x00,0x04,0xFC,0x04,/*"n",78*/ 0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0xF8,0x04,0x04,0x04,0x04,0xF8,0x00,/*"o",79*/ 0x01,0x01,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0xFF,0x89,0x04,0x04,0x88,0x70,0x00,/*"p",80*/ 0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x00,0x00,0x70,0x88,0x04,0x04,0x89,0xFF,0x01,/*"q",81*/ 0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x04,0x04,0xFC,0x84,0x04,0x00,0x80,0x00,/*"r",82*/ 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0xCC,0x24,0x24,0x24,0x24,0x98,0x00,/*"s",83*/ 0x00,0x01,0x01,0x07,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0xF8,0x04,0x04,0x08,0x00,/*"t",84*/ 0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xF8,0x04,0x04,0x04,0x08,0xFC,0x04,/*"u",85*/ 0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x00,0xC0,0x30,0x0C,0x30,0xC0,0x00,0x00,/*"v",86*/ 0x01,0x01,0x00,0x01,0x01,0x00,0x01,0x01,0x80,0x70,0x0C,0x30,0xE0,0x1C,0x60,0x80,/*"w",87*/ 0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x00,0x00,0x04,0x8C,0x70,0x74,0x8C,0x04,0x00,/*"x",88*/ 0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x00,0x81,0x61,0x1E,0x18,0x60,0x80,0x00,/*"y",89*/ 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x84,0x0C,0x34,0x44,0x84,0x0C,0x00,/*"z",90*/ 0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,/*"{",91*/ 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,/*"|",92*/ 0x40,0x40,0x3F,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,/*"}",93*/ 0x00,0x40,0x80,0x40,0x40,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"~",94*/ }; uint8_t const number_table_8x16[]= { 0xF8,0xF8,0x0C,0xC4, 0x0C,0xF8,0xF0,0x00, 0x03,0x07,0x0C,0x08, 0x0C,0x07,0x03,0x00, //-0- ASCII:0X30 0x00,0x10,0x18,0xFC, 0xFC,0x00,0x00,0x00, 0x00,0x08,0x08,0x0F, 0x0F,0x08,0x08,0x00, //-1- 0x08,0x0C,0x84,0xC4, 0x64,0x3C,0x18,0x00, 0x0E,0x0F,0x09,0x08, 0x08,0x0C,0x0C,0x00, //-2- 0x08,0x0C,0x44,0x44, 0x44,0xFC,0xB8,0x00, 0x04,0x0C,0x08,0x08, 0x08,0x0F,0x07,0x00, //-3- 0xC0,0xE0,0xB0,0x98, 0xFC,0xFC,0x80,0x00, 0x00,0x00,0x00,0x08, 0x0F,0x0F,0x08,0x00, //-4- ASCII:0X34 0x7C,0x7C,0x44,0x44, 0x44,0xC4,0x84,0x00, 0x04,0x0C,0x08,0x08, 0x08,0x0F,0x07,0x00, //-5- 0xF0,0xF8,0x4C,0x44, 0x44,0xC0,0x80,0x00, 0x07,0x0F,0x08,0x08, 0x08,0x0F,0x07,0x00, //-6- 0x0C,0x0C,0x04,0x84, 0xC4,0x7C,0x3C,0x00, 0x00,0x00,0x0F,0x0F, 0x00,0x00,0x00,0x00, //-7- 0xB8,0xFC,0x44,0x44, 0x44,0xFC,0xB8,0x00, 0x07,0x0F,0x08,0x08, 0x08,0x0F,0x07,0x00, //-8- 0x38,0x7C,0x44,0x44, 0x44,0xFC,0xF8,0x00, 0x00,0x08,0x08,0x08, 0x0C,0x07,0x03,0x00, //-9- }; uint8_t const vollgoLogo94_68[]= { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x3F,0x7F,0x7F,0x7F,0xFF, 0x7F,0x7F,0x7F,0x3F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01, 0x01,0x01,0x01,0x00,0x00,0x00,0x00,0xC0,0xE0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFC,0xF8, 0xF8,0xF0,0xE0,0x80,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0x7F,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x1E,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x07,0x0F,0x0F,0x0F, 0x0F,0x0F,0x07,0x03,0x01,0x00,0x80,0xC0,0xE0,0xE0,0xF0,0xF0,0xF0,0xE0,0xF0,0xF8, 0xFC,0x7E,0x3F,0x1F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x1F,0x3F,0x7E,0xFC, 0xF8,0xF0,0xE0,0xE0,0xF0,0xF0,0xF0,0xE0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x03,0x07, 0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xF9,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xF8,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0F,0x1F,0x3F,0x3F,0x3F,0x7F,0x7F,0x3F,0x3F, 0x3F,0x1F,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0xC0,0xE0, 0xF0,0xF8,0xFF,0xFF,0x7F,0x3F,0x3F,0x7F,0x7F,0x7F,0x3F,0x3F,0x1F,0x0F,0x03,0x00, 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x07,0x0F,0x1F,0x3F,0x3F, 0x7F,0x7F,0x7F,0x3F,0x3F,0x7F,0xFF,0xF3,0xE0,0xC0,0x80,0x00,0x00,0x80,0x80,0x80, 0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x0F,0x1F,0x3F,0x3F,0x3F,0x7F,0x7F,0x3F,0x3F, 0x3F,0x1F,0x0F,0x01,0x80,0xE0,0xF8,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE, 0xFF,0x8F,0x0F,0x07,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x07, 0xEF,0xFF,0xFF,0xFE,0xFC,0xFC,0xFC,0xFC,0xFE,0xFF,0xFF,0xFF,0xC7,0x03,0x03,0x01, 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x07,0xEF,0xFF,0xFF,0xFE,0xFC,0xFC,0xFC, 0xFC,0xFC,0xFC,0xFE,0xFF,0xDF,0x0F,0x07,0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01, 0x03,0x07,0x0F,0x1F,0xBF,0xFE,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xF8,0xF8, 0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, 0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDE,0x80,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDE,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0x9E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xC0,0xC0,0xE0,0xF0,0xF0,0xF0,0xF0,0xE0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xE0,0xF0,0xF0,0xF0, 0xF0,0xE0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xC0,0xC0,0xE0,0xF0,0xF0,0xF0,0xF0,0xE0,0xE0,0xC0,0x80,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; imageParams_ts imageParams[5]; static void myLCD_delay(uint32_t time_us) { uint16_t i = 0; uint32_t j = 0; for ( j = 0; j < time_us; j++) { for (i = 0; i < 10; i++) { ; } } } static void myLCD_start_flag(void) { LCD_CLK_H(); /*START FLAG*/ LCD_SDA_H(); /*START FLAG*/ LCD_SDA_L(); /*START FLAG*/ } static void myLCD_stop_flag(void) { LCD_CLK_H(); /*STOP FLAG*/ LCD_SDA_L(); /*STOP FLAG*/ LCD_SDA_H(); /*STOP FLAG*/ } static uint8_t i2c_wait_ack(void) { uint8_t timeoutCnt = 0; myLCD_setSdaMode(GPIO_Mode_IN_FLOATING); LCD_CLK_H(); while (READ_LCD_SDA()) { timeoutCnt++; if (timeoutCnt > 250) { return 0; } } LCD_CLK_L(); return 1; } static void myLCD_transfer(uint8_t src) { uint8_t i; // myLCD_setSdaMode(GPIO_Mode_Out_OD); for(i = 0; i < 8;i ++) { LCD_CLK_L(); if(src & 0x80) { LCD_SDA_H(); } else { LCD_SDA_L(); } LCD_CLK_H(); LCD_CLK_L(); src = src << 1; } LCD_SDA_L(); LCD_CLK_H(); LCD_CLK_L(); } static uint8_t myLCD_receiver(bool ack) { uint8_t i; uint8_t ret = 0; myLCD_setSdaMode(GPIO_Mode_IN_FLOATING); for(i = 0; i < 8;i ++) { LCD_CLK_L(); myLCD_delay(3); LCD_CLK_H(); ret = ret << 1; if(READ_LCD_SDA()) { ret ++; } myLCD_delay(3); } myLCD_setSdaMode(GPIO_Mode_Out_OD); LCD_CLK_L(); myLCD_delay(1); if (ack) { LCD_SDA_L(); } else { LCD_SDA_H(); } myLCD_delay(1); LCD_CLK_H(); myLCD_delay(4); LCD_CLK_L(); myLCD_delay(1); if (ack) { LCD_SDA_H(); } else { LCD_SDA_L(); } return ret; } static void mySensor_transfer_command(uint16_t cmd) { myLCD_start_flag(); myLCD_transfer(SENSOR_DEVICE_ADDR); myLCD_delay(50); myLCD_transfer(cmd >> 8); myLCD_delay(50); myLCD_transfer(cmd); myLCD_stop_flag(); } static void mySensor_read(uint8_t *readData, uint8_t len) { uint8_t i; myLCD_start_flag(); myLCD_transfer(SENSOR_DEVICE_ADDR | 0x01); LCD_SDA_H(); myLCD_delay(2000); for ( i = 0; i < len; i++) { readData[i] = myLCD_receiver(i==(len - 1)?false:true); } myLCD_stop_flag(); } //----------------------------------------------------------------------------- /** * * 兼容SHT3x,SHT2X,HTU2x */ static float conversionTemperature(unsigned int rawValue) { // calculate temperature [掳C] // T = -45 + 175 * rawValue / (2^16-1) return 175.0f * (float)rawValue / 65535.0f - 45.0f; } static float conversionRelativeHumidity(unsigned int rawValue) { // calculate relative humidity [%RH] // RH = rawValue / (2^16-1) * 100 return 100.0f * (float)rawValue / 65535.0f; } //----------------------------------------------------------------------------- int SHT3X_getPresentValue(int *pTemp, int *pHumit, unsigned char decimalPlaces) { int retSta = 0; // unsigned int rawValueTemp; // unsigned int rawValueHumi; // uint8_t readTempt[6]; mySensor_transfer_command(0x2C06); myLCD_delay(50); mySensor_read(readTempt, 6); rawValueTemp = (unsigned int)readTempt[0]<<8 | readTempt[1]; rawValueHumi = (unsigned int)readTempt[3]<<8 | readTempt[4]; *pTemp = (int)(conversionTemperature(rawValueTemp)*pow(10,decimalPlaces));//& (0x00ff) *pHumit = (int)(conversionRelativeHumidity(rawValueHumi)*pow(10,decimalPlaces)); return retSta; } //写命令到液晶显示模块 static void myLCD_transfer_command(uint8_t cmd) { commandType = cmd; myLCD_start_flag(); myLCD_transfer(LCD_DEVICE_ADDR); myLCD_transfer(0x80); myLCD_transfer(cmd); myLCD_stop_flag(); } //写数据到液晶显示模块 static void myLCD_transfer_data(uint8_t src) { myLCD_start_flag(); myLCD_transfer(LCD_DEVICE_ADDR); myLCD_transfer(0xC0); myLCD_transfer(src); myLCD_stop_flag(); } static void myLCD_setCommandType(commandType_te command) { if (commandType != command) { myLCD_transfer_command(command); } } void myLCD_setDisplayOnOff(uint8_t status) { myLCD_setCommandType(CMDT_EXT_CMD1); // myLCD_transfer_command(status); } void myLCD_diplayMode(displayMode_te mode) { myLCD_setCommandType(CMDT_EXT_CMD1); myLCD_transfer_command(LCD_CMD_DISPLAY_MODE); //Display Mode myLCD_transfer_data(mode); //10=Monochrome Mode,11=4Gray } /** * level_b,浅灰度 * level_d,浅灰度 * 注意:调用该函数前,需先设置@LCD_CMD_DISPLAY_MODE为@DM_4GRAY_MODE */ void myLCD_setGrayLevel(uint8_t level_b, uint8_t level_d) { myLCD_setCommandType(CMDT_EXT_CMD2); myLCD_transfer_command(LCD_CMD_SET_GRAY_LEVEL); // Gray Level myLCD_transfer_data(0x00); myLCD_transfer_data(0x00); myLCD_transfer_data(0x00); myLCD_transfer_data(level_b & 0x1f); //浅灰度 myLCD_transfer_data(level_b & 0x1f); //浅灰度 myLCD_transfer_data(level_b & 0x1f); //浅灰度 myLCD_transfer_data(0x00); myLCD_transfer_data(0x00); myLCD_transfer_data(level_d & 0x1f); //深灰度 myLCD_transfer_data(0x00); myLCD_transfer_data(0x00); myLCD_transfer_data(level_d & 0x1f); //深灰度 myLCD_transfer_data(level_d & 0x1f); //深灰度 myLCD_transfer_data(level_d & 0x1f); //深灰度 myLCD_transfer_data(0x00); myLCD_transfer_data(0x00); } #define MAX_LCD_VOP_VALUE 511 void myLCD_setVop(uint16_t value) { value = value & MAX_LCD_VOP_VALUE; myLCD_transfer_command(CMDT_EXT_CMD1); myLCD_transfer_command(LCD_CMD_SET_VOP); // myLCD_transfer_data(value & 0x3f); // myLCD_transfer_data((value >> 6) & 0x07); // } void myLCD_resetLcd(void) { LCD_RST_ENABLE(); myLCD_delay(100); LCD_RST_DISABLE(); } /*写 LCD 行列地址:X 为起始的列地址,Y 为起始的行地址,x_total,y_total 分别为列地址及行地址的起点到 终点的差值 */ void myLCD_displayAddress(int x,int y,int x_total,int y_total) { x = x - 1; y = y + 7; myLCD_setCommandType(CMDT_EXT_CMD1); myLCD_transfer_command(LCD_CMD_CLUMN_ADDR_SETTING); //Set Column Address myLCD_transfer_data(x); myLCD_transfer_data(x + x_total - 1); myLCD_transfer_command(LCD_CMD_PAGE_ADDR_SETTING); //Set Page Address myLCD_transfer_data(y); myLCD_transfer_data(y + y_total - 1); myLCD_transfer_command(LCD_CMD_WRITE_DISPLAY_DATA); } //写入一组 16x16 点阵的汉字字符串(字符串表格中需含有此字) //括号里的参数:(页,列,汉字字符串) /** * * inverseMode: * column: min=1,max=193 * page: min=1,max=11 */ void myLCD_16x16(inverseMode_te inverseMode, uint8_t column, uint8_t page, char *text) { uint16_t i,j,k; uint16_t address; j=0; while(text[j] != '\0') { i=0; address=1; while(Chinese_text_16x16[i] > 0x7e) { if(Chinese_text_16x16[i] == text[j]) { if(Chinese_text_16x16[i+1] == text[j+1]) { address=i*16; break; } } i += 2; } if(address != 1) { myLCD_displayAddress(column,page,16,2); for(k=0;k<2;k++) { for(i=0;i<16;i++) { if (inverseMode == IM_INVERSE) { myLCD_transfer_data(~Chinese_code_16x16[address]); } else { myLCD_transfer_data(Chinese_code_16x16[address]); } address++; } } j +=2; } else { myLCD_displayAddress(column,page,16,2); for(k=0;k<2;k++) { for(i=0;i<16;i++) { if (inverseMode == IM_INVERSE) { myLCD_transfer_data(0xff); } else { myLCD_transfer_data(0x00); } } } j++; } column+=16; } } /** * * column: min=1,max=193 * page: min=1,max=6 */ void myLCD_8x16(inverseMode_te inverseMode, int column, int page, char *text) { uint16_t i=0,j,k; int pageCount; int columnCount; pageCount = page; while(text[i]>0x00) { if((text[i]>=0x20)&&(text[i]<=0x7e)) { j = text[i]-0x20; myLCD_displayAddress(column, page * 2 - 1, 8, 2); columnCount = column; pageCount = page; for(k=0;k<16;k++) { if (k == 8) { pageCount ++; columnCount = column; } columnCount ++; if (pageCount > MAX_PAGE_COUNT) { break; } if (columnCount > MAX_COLUMN_COUNT) { break; } if (inverseMode == IM_INVERSE) { myLCD_transfer_data(~ascii_table_8x16[j][k]); } else { myLCD_transfer_data(ascii_table_8x16[j][k]); } } column += 8; if (column > MAX_COLUMN_COUNT) { break; } } i++; } } /** * * column: min=1,max=193 * page: min=1,max=11 */ void myLCD_str8x16(inverseMode_te inverseMode, int column, int page, char *fmt, ...) { va_list va; char tempTab[50]; int len; va_start(va, fmt); memset(tempTab, 0, sizeof(tempTab)); vsnprintf(tempTab, (int)sizeof(tempTab), fmt, va); len = strlen(tempTab); if (len > MAX_COLUMN_COUNT) { len = MAX_COLUMN_COUNT; } if (column == HORIZONTAL_CENTER) { len = strlen(tempTab) * 8 / 2; column = MAX_COLUMN_COUNT / 2 - len; } if (column == HORIZONTAL_RIGHT) { len = strlen(tempTab) * 8; column = MAX_COLUMN_COUNT - len; } if (column == HORIZONTAL_LEFT) { column = 1; } myLCD_8x16(inverseMode, column, page, tempTab); va_end(va); } /*显示 32*32 点阵的汉字或等同于 32*32 点阵的图像*/ void myLCD_32x32(inverseMode_te inverseMode, int x,int y,char *dp) { int i,j; myLCD_displayAddress(x,y,32,4); for(i=0;i<4;i++) { for(j=0;j<32;j++) { myLCD_transfer_data(*dp); dp++; } } } void myLCD_displayDot(int x, int y) { myLCD_displayAddress(x, y, 0, 0); myLCD_transfer_data(0x01); } void myLCD_displayImage(inverseMode_te inverseMode, int x, int y, imageSrc_te index) { int j; int x_count; int y_count; x_count = x; y_count = y; myLCD_displayAddress(x, y, imageParams[index].width, imageParams[index].heigth / 8); for(j = 0;j < imageParams[index].width * imageParams[index].heigth / 8;j ++) { x_count ++; if (x_count > MAX_COLUMN_COUNT) { x_count = x; y_count ++; continue; } if (y_count > MAX_PAGE_COUNT) { break; } if (inverseMode == IM_INVERSE) { myLCD_transfer_data(~(*imageParams[index].imageSrc)); } else { myLCD_transfer_data(*imageParams[index].imageSrc); } imageParams[index].imageSrc++; } } /** * 显示滚动驱动 * * 注意:未调试 * */ void myLCD_scroll(scrollDisplayMode_te mode, uint8_t startAddr, uint8_t endAddr, uint8_t pages) { myLCD_setCommandType(CMDT_EXT_CMD1); myLCD_transfer_command(LCD_CMD_SCROLL_AREA_DISPLAY); // myLCD_transfer_data(startAddr); // myLCD_transfer_data(endAddr); // myLCD_transfer_data(pages); // myLCD_transfer_data(mode); // } /** * 显示滚动驱动 * * 注意:未调试 * */ void myLCD_scrollLine(uint8_t pages) { myLCD_setCommandType(CMDT_EXT_CMD1); myLCD_transfer_command(LCD_CMD_SCROLL_AREA_DISPLAY_INIT); // myLCD_transfer_data(pages); // } void myLCD_clearFull(void) { int i; myLCD_displayAddress(1, 1, MAX_COLUMN_COUNT, MAX_PAGE_COUNT); for(i = 0; i< MAX_COLUMN_COUNT * MAX_PAGE_COUNT; i++) { myLCD_transfer_data(0x00); } } void myLCD_displayBlock(int x,int y) { int i; myLCD_displayAddress(x, y, 8, 1); for(i = 0; i< 4; i++) { myLCD_transfer_data(0xff); } } void test(int x,int y) { int i,j; myLCD_setCommandType(CMDT_EXT_CMD1); myLCD_displayAddress(x,y,256,16); for(i=0;i<16;i++) { for(j=0;j<255;j++) { myLCD_transfer_data(0x55); } } } void myLCD_setSdaMode(GPIOMode_TypeDef GPIO_Mode) { static GPIOMode_TypeDef mode; GPIO_InitTypeDef GPIO_InitStructure; if (GPIO_Mode == mode) { return; } GPIO_InitStructure.GPIO_Pin = BOARD_PIN_LCD_SDA; GPIO_InitStructure.GPIO_Mode = GPIO_Mode; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(BOARD_PORT_LCD_SDA, &GPIO_InitStructure); mode = GPIO_Mode; } void myLCD_init(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = BOARD_PIN_LCD_BG_LED; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(BOARD_PORT_LCD_BG_LED, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = BOARD_PIN_LCD_SDA; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(BOARD_PORT_LCD_SDA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = BOARD_PIN_LCD_CLK; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(BOARD_PORT_LCD_CLK, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = BOARD_PIN_LCD_RST; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(BOARD_PORT_LCD_RST, &GPIO_InitStructure); LCD_BG_LED_ON(); LCD_RST_ENABLE(); myLCD_delay(100); LCD_RST_DISABLE(); myLCD_delay(10000); myLCD_setCommandType(CMDT_EXT_CMD1); myLCD_transfer_command(LCD_CMD_POWER_SAVE_OFF); //Sleep out myLCD_setCommandType(CMDT_EXT_CMD2); myLCD_transfer_command(0xD7); //Autoread disable myLCD_transfer_data(0X9F); // myLCD_transfer_command(LCD_CMD_SET_LCD_OFFSET_VOL); //Analog SET myLCD_transfer_data(0x00); //OSC Frequency adjustment myLCD_transfer_data(0x01); //Frequency on booster capacitors->6KHz myLCD_transfer_data(0x03); //Bias=1/11 // myLCD_setGrayLevel(0x12, 0x17); myLCD_setCommandType(CMDT_EXT_CMD1); myLCD_transfer_command(LCD_CMD_DATA_FORMAT_D7_D0); //Page Address setting myLCD_transfer_command(LCD_CMD_PAGE_ADDR_SETTING); //Page Address setting myLCD_transfer_data(0X00); // XS=0 myLCD_transfer_data(0X14); // XE=159 0x28 myLCD_transfer_command(LCD_CMD_CLUMN_ADDR_SETTING); //Clumn Address setting myLCD_transfer_data(0X00); // XS=0 myLCD_transfer_data(0Xff); // XE=256 myLCD_transfer_command(LCD_CMD_SCAN_DIRECTION); //Data scan direction myLCD_transfer_data(0x00); //MX.MY=Normal myLCD_transfer_data(0xA6); myLCD_transfer_command(LCD_CMD_DISPLAY_CONTROL); //Display Control myLCD_transfer_data(0X00); // myLCD_transfer_data(0X9F); //Duty=160 myLCD_transfer_data(0X20); //Nline=off myLCD_diplayMode(DM_MONO_MODE); myLCD_setVop(250);//→←↑↓¤ myLCD_transfer_command(LCD_CMD_POWER_CONTROL); //Power control myLCD_transfer_data(0x0B); //D0=regulator ; D1=follower ; D3=booste, on:1 off:0 myLCD_delay(10000); myLCD_transfer_command(LCD_CMD_DISPLAY_ON); //Display on myLCD_delay(10000); myLCD_clearFull(); imageParams[0].imageSrc = (uint8_t *)vollgoLogo94_68; imageParams[0].width = 94; imageParams[0].heigth = 72; }