Hallo,
ich versuche beim Stm32f4-discoveryboard mit dem Grafikbeschleuniger ein
Zeichen, das im Format A4 vorliegt auf's Display zu bringen. Leider wird
nur ein Quadrat angezeigt (sh. erstes Bild).
in Main wird MX_DMA2D_Init() aufgerufen:
1 | void MX_DMA2D_Init(void)
|
2 | {
|
3 | hdma2d.Instance = DMA2D;
|
4 | hdma2d.Init.Mode = DMA2D_M2M_PFC;
|
5 | hdma2d.Init.ColorMode = DMA2D_RGB565;
|
6 | hdma2d.Init.OutputOffset = 0;
|
7 |
|
8 | hdma2d.LayerCfg[1].InputOffset = 0;
|
9 | hdma2d.LayerCfg[1].InputColorMode = CM_A4;
|
10 | // hdma2d.LayerCfg[1].InputColorMode = CM_L4;
|
11 |
|
12 | hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
|
13 | hdma2d.LayerCfg[1].InputAlpha = 0x80ff80ff;
|
14 |
|
15 | HAL_DMA2D_Init(&hdma2d);
|
16 | HAL_DMA2D_ConfigLayer(&hdma2d, 1);
|
17 | }
|
Zum Anzeigen des Zeichens wird dann der DMA2D gestartet:
1 | void dma_show_digit (uint8_t digit) {
|
2 |
|
3 | uint32_t source;
|
4 |
|
5 | source = (uint32_t) &bigfont_dma[0];
|
6 |
|
7 | HAL_DMA2D_Start_IT(&hdma2d, source, (uint32_t) g_cursor, 64, 78);
|
8 |
|
9 | }
|
Wenn ich als Eingangs-Farbmode L4 einstelle, wird das Zeichen (mit einer
zufälligen?) Farbtabelle angezeigt. Das zeigt mir, das zumindest die
Adresseinstellungen richtig sind. Das aktuelle HAL-Paket (V1.9.0) habe
ich schon installiert. Bringt keine Änderung.
Kann mir jemand sagen, was ich beim Farbmode A4 falsch mache?
Vielen Dank,
Markus