# HG changeset patch # User heinrichsweikamp # Date 1724604943 -7200 # Node ID 6b06143cbfea3917a96496ae2feeb93725c1c2fb # Parent a0900e4df15ca2bc12ac608c22baa072e7d5700c brightness settings and proper power down for new screen diff -r a0900e4df15c -r 6b06143cbfea Discovery/Inc/display.h --- a/Discovery/Inc/display.h Tue Aug 20 15:18:43 2024 +0200 +++ b/Discovery/Inc/display.h Sun Aug 25 18:55:43 2024 +0200 @@ -29,8 +29,12 @@ void display_power_on__1_of_2__pre_RGB(void); void display_power_on__2_of_2__post_RGB(void); - void display_power_off(void); +void display_1_brightness_max(void); +void display_1_brightness_high(void); +void display_1_brightness_std(void); +void display_1_brightness_eco(void); +void display_1_brightness_cave(void); void display_sleep(void); void display_sleep_release(void); diff -r a0900e4df15c -r 6b06143cbfea Discovery/Src/base.c --- a/Discovery/Src/base.c Tue Aug 20 15:18:43 2024 +0200 +++ b/Discovery/Src/base.c Sun Aug 25 18:55:43 2024 +0200 @@ -1002,7 +1002,8 @@ { /* not at the moment of testing */ // ext_flash_erase_firmware_if_not_empty(); - GFX_logoAutoOff(); + GFX_logoAutoOff(); + display_power_off(); ext_flash_write_devicedata(true); /* write data at default position */ ext_flash_write_settings(true); /* write data at default position */ set_globalState(StStop); @@ -1257,10 +1258,12 @@ case 0: /* Cave */ levelMax = 3000;/* max 25 % (x2) */ levelMin = 1500; + if (hardwareDisplay == 1) display_1_brightness_cave(); break; case 1: /* Eco */ levelMax = 6000;/* max 50 % (x2) */ levelMin = 3000; + if (hardwareDisplay == 1) display_1_brightness_eco(); break; case 2: /* Std */ levelAmbient += 1000; @@ -1268,6 +1271,7 @@ levelMin = 4500; levelUpStep_100ms += levelUpStep_100ms/2; // 4500 instead of 3000 levelDnStep_100ms += levelDnStep_100ms/2; + if (hardwareDisplay == 1) display_1_brightness_std(); break; case 3: /* High */ default: @@ -1276,6 +1280,7 @@ levelMin = 6000; levelUpStep_100ms += levelUpStep_100ms; // 6000 instead of 3000 levelDnStep_100ms += levelDnStep_100ms; + if (hardwareDisplay == 1) display_1_brightness_high(); break; case 4: /* New Max */ levelAmbient = 12000; @@ -1283,6 +1288,7 @@ levelMin = 12000; levelUpStep_100ms += 12000; levelDnStep_100ms += 0; + if (hardwareDisplay == 1) display_1_brightness_max(); break; } @@ -1345,7 +1351,7 @@ sConfig.OCMode = TIM_OCMODE_PWM1; sConfig.OCPolarity = TIM_OCPOLARITY_HIGH; sConfig.OCFastMode = TIM_OCFAST_DISABLE; - sConfig.Pulse = 100; /* Initial brigthness of display */ + sConfig.Pulse = 100; /* Initial brightness of display */ HAL_TIM_PWM_ConfigChannel(&TimBacklightHandle, &sConfig, TIM_BACKLIGHT_CHANNEL); HAL_TIM_PWM_Start(&TimBacklightHandle, TIM_BACKLIGHT_CHANNEL); diff -r a0900e4df15c -r 6b06143cbfea Discovery/Src/display.c --- a/Discovery/Src/display.c Tue Aug 20 15:18:43 2024 +0200 +++ b/Discovery/Src/display.c Sun Aug 25 18:55:43 2024 +0200 @@ -43,13 +43,20 @@ #define OLED_POWER_SET 0x23 // VC1OUT = VCI X 0.98 (default) = 0x00 #define OLED_POWER_SET2 0x24 // VREG2OUT = 5,4V, VREG1OUT = 4,2V =0x77 #define OLED_DISPLAY_CONDITION_SET_26h 0x26 // 0x00A0 -#define OLED_STB_BY_OFF 0x1D // 00A0 + 300ms wait -#define OLED_DDISP_ON 0x14 // 0003 +#define OLED_STB_BY_OFF_1Dh 0x1D // 00A0 + 300ms wait +#define OLED_DDISP_ON_14h 0x14 // 0003 static void Display_Error_Handler(void); static void display_power_on__2_of_2__post_RGB_display0(void); static void display_power_on__2_of_2__post_RGB_display1(void); +void display_1_brightness_max(void); +void display_1_brightness_high(void); +void display_1_brightness_std(void); +void display_1_brightness_eco(void); +void display_1_brightness_cave(void); + static uint8_t receive_screen(); +uint8_t brightness_screen1; void display_power_on__1_of_2__pre_RGB(void) { @@ -158,6 +165,35 @@ return outputlength; } +void display_power_off(void) +{ + if (hardwareDisplay == 1) + { + uint8_t aTxBuffer[3]; + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_DDISP_ON_14h; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + HAL_Delay(25); + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_STB_BY_OFF_1Dh; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0xA1; + send((uint8_t*)aTxBuffer, 2); + HAL_Delay(200); + HAL_GPIO_WritePin(DISPLAY_RESETB_GPIO_PORT,DISPLAY_RESETB_PIN,GPIO_PIN_RESET); + } + else + { + // display 0 + } +} + + void display_power_on__2_of_2__post_RGB(void) { if (hardwareDisplay == 1) @@ -328,13 +364,14 @@ aTxBuffer[1] = 0x08;//8 send((uint8_t*)aTxBuffer, 2); - //debug read + /*//debug read aTxBuffer[0] = 0x70; aTxBuffer[1] = OLED_SCTE_SET_31h; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x73; // Read internal register aTxBuffer[1] = 0x00; // Dummy write - reads out 0x08 (The just-set OLED_SCTE_SET value) send((uint8_t*)aTxBuffer, 2); + */ aTxBuffer[0] = 0x70; aTxBuffer[1] = OLED_WCWE_SET_32h; @@ -445,7 +482,272 @@ aTxBuffer[1] = 0x44;//44 send((uint8_t*)aTxBuffer, 2); - // GAMMA L=250 + + display_1_brightness_std(); // boot brightness + + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_BOOSTING_FREQ; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x22; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_AMP_SET_18h; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x22; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_GAMMA_AMP_19h; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x02; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_POWER_CONTROL2_1Ah; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + /* + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_POWER_CONTROL2_1Bh; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x4B; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_POWER_CONTROL2_1Ch; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x05; + send((uint8_t*)aTxBuffer, 2); + */ + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_INTERNAL_LOGIC_VOLTAGE; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0xA2; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_POWER_SET; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_POWER_SET2; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x77; + send((uint8_t*)aTxBuffer, 2); + + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_DISPLAY_CONDITION_SET_26h; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0xA0; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_STB_BY_OFF_1Dh; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0xA0; + send((uint8_t*)aTxBuffer, 2); + + HAL_Delay(250); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = OLED_DDISP_ON_14h; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x03; + send((uint8_t*)aTxBuffer, 2); +} + +void display_1_brightness_max(void) +{ + uint8_t aTxBuffer[3]; + + if (brightness_screen1 == 4) + { + // do nothing + } + else + { + // GAMMA L=250 + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x40; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x41; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x3F; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x42; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x2A; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x43; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x27; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x44; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x27; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x45; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x1F; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x46; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x44; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x50; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x51; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x52; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x17; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x53; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x24; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x54; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x26; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x55; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x1F; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x56; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x43; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x60; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x61; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x3F; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x62; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x2A; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x63; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x25; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x64; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x24; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x65; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x1B; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x66; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x5C; + send((uint8_t*)aTxBuffer, 2); + + brightness_screen1=4; + } +} + +void display_1_brightness_high(void) +{ + uint8_t aTxBuffer[3]; + if (brightness_screen1 == 3) + { + // do nothing + } + else + { + // GAMMA L=200 aTxBuffer[0] = 0x70; aTxBuffer[1] = 0x40; send((uint8_t*)aTxBuffer, 2); @@ -593,7 +895,21 @@ aTxBuffer[1] = 0x5C; send((uint8_t*)aTxBuffer, 2); - /* + brightness_screen1=3; + } +} + + +void display_1_brightness_std(void) +{ + uint8_t aTxBuffer[3]; + + if (brightness_screen1 == 2) + { + // do nothing + } + else + { // GAMMA L=150 aTxBuffer[0] = 0x70; aTxBuffer[1] = 0x40; @@ -741,97 +1057,333 @@ aTxBuffer[0] = 0x72; aTxBuffer[1] = 0x4A; send((uint8_t*)aTxBuffer, 2); - */ + + brightness_screen1=2; + } +} + +void display_1_brightness_eco(void) +{ + uint8_t aTxBuffer[3]; + + if (brightness_screen1 == 1) + { + // do nothing + } + else + { + // GAMMA L=100 + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x40; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x41; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x3F; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x42; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x30; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x43; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x2A; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x44; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x2B; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x45; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x24; + send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x70; - aTxBuffer[1] = OLED_BOOSTING_FREQ; + aTxBuffer[1] = 0x46; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x2F; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x50; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x51; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x52; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x72; - aTxBuffer[1] = 0x22; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x53; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x25; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x54; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x29; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x55; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x24; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x56; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x2E; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x60; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x70; - aTxBuffer[1] = OLED_AMP_SET_18h; + aTxBuffer[1] = 0x61; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x3F; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x62; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x2F; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x63; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x29; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x64; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x29; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x65; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x21; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x66; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x3F; + send((uint8_t*)aTxBuffer, 2); + + brightness_screen1=1; + } +} + +void display_1_brightness_cave(void) +{ + uint8_t aTxBuffer[3]; + + if (brightness_screen1 == 0) + { + // do nothing + } + else + { + // GAMMA L=50 + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x40; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x41; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x3F; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x42; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x3C; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x43; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x2C; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x44; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x2D; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x45; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x27; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x46; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x24; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x50; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x51; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x52; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x00; + send((uint8_t*)aTxBuffer, 2); + + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x53; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x72; aTxBuffer[1] = 0x22; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x70; - aTxBuffer[1] = OLED_GAMMA_AMP_19h; + aTxBuffer[1] = 0x54; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x72; - aTxBuffer[1] = 0x02; + aTxBuffer[1] = 0x2A; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x70; - aTxBuffer[1] = OLED_POWER_CONTROL2_1Ah; + aTxBuffer[1] = 0x55; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x72; - aTxBuffer[1] = 0x00; - send((uint8_t*)aTxBuffer, 2); - - /* - aTxBuffer[0] = 0x70; - aTxBuffer[1] = OLED_POWER_CONTROL2_1Bh; - send((uint8_t*)aTxBuffer, 2); - aTxBuffer[0] = 0x72; - aTxBuffer[1] = 0x4B; + aTxBuffer[1] = 0x27; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x70; - aTxBuffer[1] = OLED_POWER_CONTROL2_1Ch; + aTxBuffer[1] = 0x56; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x72; - aTxBuffer[1] = 0x05; - send((uint8_t*)aTxBuffer, 2); - */ - - aTxBuffer[0] = 0x70; - aTxBuffer[1] = OLED_INTERNAL_LOGIC_VOLTAGE; - send((uint8_t*)aTxBuffer, 2); - aTxBuffer[0] = 0x72; - aTxBuffer[1] = 0xA2; + aTxBuffer[1] = 0x23; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x70; - aTxBuffer[1] = OLED_POWER_SET; + aTxBuffer[1] = 0x60; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x72; aTxBuffer[1] = 0x00; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x70; - aTxBuffer[1] = OLED_POWER_SET2; + aTxBuffer[1] = 0x61; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x72; - aTxBuffer[1] = 0x77; + aTxBuffer[1] = 0x3F; send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x62; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x3B; + send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x70; - aTxBuffer[1] = OLED_DISPLAY_CONDITION_SET_26h; + aTxBuffer[1] = 0x63; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x72; - aTxBuffer[1] = 0xA0; + aTxBuffer[1] = 0x2C; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x70; - aTxBuffer[1] = OLED_STB_BY_OFF; + aTxBuffer[1] = 0x64; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x72; - aTxBuffer[1] = 0xA0; + aTxBuffer[1] = 0x2B; send((uint8_t*)aTxBuffer, 2); - HAL_Delay(250); + aTxBuffer[0] = 0x70; + aTxBuffer[1] = 0x65; + send((uint8_t*)aTxBuffer, 2); + aTxBuffer[0] = 0x72; + aTxBuffer[1] = 0x24; + send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x70; - aTxBuffer[1] = OLED_DDISP_ON; + aTxBuffer[1] = 0x66; send((uint8_t*)aTxBuffer, 2); aTxBuffer[0] = 0x72; - aTxBuffer[1] = 0x03; + aTxBuffer[1] = 0x31; send((uint8_t*)aTxBuffer, 2); + brightness_screen1=0; + } } static void Display_Error_Handler(void)