Hallo miteinander,
Vorab: Ich bin recht unerfahren in der Nutzung von HALs und BSPs und bin
mich da gerade etwas am Einarbeiten, wie man damit am Besten umgeht.
Ich habe das Discovery STM32F429 Board und nutze die von ST zur
Verfügung gestellten "CubeF4" Treiber HALs BSPs.
Mein aktuelles Problem ist kurz zusammen gefasst:
Im Debug mode zeigt er immer die falschen Farben an (Schwarz = Weiß,
Blau = Gelb usw.). Sofern ich die Software auf dem Board ohne Debugmodus
starte, funktioniert es, wenn ich nur "kurz" die Reset Taste drücke,
aber funktioniert fehlerhaft wenn ich länger auf der Reset Taste bleibe.
Ich nutze ein von CubeF4 zur Verfügung gestelltes "Template" als Start
für mein Programm. Es wird zuvor z.B. die SystemClock auf 180Mhz
angehoben etc.
Ich weiß jetzt natürlich nicht genau was ich euch alles an Codeschnipsel
zeigen soll, damit man mir überhaupt helfen kann.
die main aufs minimum abgespeckt:
1 | if(BSP_LCD_Init() != LCD_OK)
|
2 | {
|
3 | printf("LCD INIT FAIL"); //will be shown in debugwindow
|
4 | while(1);
|
5 | }
|
6 | BSP_LCD_LayerDefaultInit(LCD_FOREGROUND_LAYER, LCD_FRAME_BUFFER);
|
7 | BSP_LCD_LayerDefaultInit(LCD_BACKGROUND_LAYER, LCD_FRAME_BUFFER+BUFFER_OFFSET);
|
8 |
|
9 | BSP_LCD_SelectLayer(LCD_FOREGROUND_LAYER);
|
10 | BSP_LCD_SetBackColor(LCD_COLOR_DARKGRAY);
|
11 | BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
|
12 | BSP_LCD_DisplayOn();
|
13 | while (1)
|
14 | {
|
15 | //HAL_Delay(50);
|
16 | BSP_LCD_Clear(LCD_COLOR_BLACK);
|
17 | }
|
18 | }
|
Die Farbwerte stehen korrekt im RAM drin. Da scheint irgendwas mit der
Synchronisierung zw. Microcontroller und Bildschirm nicht zu stimmen?
Danke schonmal fürs lesen.