36-VGA_Graphic-Library (STM32F4)

Diese Library dient zum zeichnen von Punkten, Linien und Kreisen auf dem VGA-Monitor.
Es können auch im Flash gespeicherte Bilder auf den Screen gezeichnet werden.

Sie benötigt dazu die VGA-Library “STM32_UB_VGA_SCREEN″

Im Moment wird nur 1 Bildformat unterstützt :
1. = 8Bit (RGB332) – Image-Files

Für das Format Nr. 1 habe ich das PC-Programm “ImageGenerator” geschrieben. Das wandelt beliebige BMP-Files in das RGB332-Format um und erzeugt ein C-File, das in der CooCox-IDE eingebunden werden kann.

Beispielvideo : (nicht von mir :-)

LINK zu Youtube

Beispielbild :

Testbild mit 320x240 Pixel

Testbild mit 320×240 Pixel

Voraussetzungen :

1
2
Benutzte Module der CooCox-IDE : keine
Benutzte Librarys : STM32_UB_VGA_SCREEN

Enumerationen :

1
2
3
4
5
typedef enum {
  VGA_GRAPHIC_OK =0,
  VGA_GRAPHIC_WIDTH_ERR,
  VGA_GRAPHIC_HEIGHT_ERR
}VGA_GRAPHIC_ERR_t;

Funktionen :

1
2
3
4
void UB_VGA_Graphic_DrawPixel(int16_t xpos, int16_t ypos, uint8_t color);                     // zeichnet einen Pixel
void UB_VGA_Graphic_DrawLine(int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint8_t color);  // zeichnet eine Linie zwischen zwei Punkten
void UB_VGA_Graphic_DrawCircle(int16_t x0, int16_t y0, int16_t radius, uint8_t color);        // zeichnet einen Kreis an Punkt x,y mit Radius r
VGA_GRAPHIC_ERR_t UB_VGA_Graphic_DrawImage(UB_VGA_Image *img, int16_t xpos, int16_t ypos);    // zeichnet ein Image aus dem Flash

Beispiel :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//--------------------------------------------------------------
// File     : main.c
// Datum    : 27.04.2013
// Version  : 1.0
// Autor    : UB
// EMail    : mc-4u(@)t-online.de
// Web      : www.mikrocontroller-4u.de
// CPU      : STM32F4
// IDE      : CooCox CoIDE 1.7.0
// Module   : CMSIS_BOOT, M4_CMSIS_CORE
// Funktion : Demo der VGA-Graphic-Library
// Hinweis  : Diese zwei Files muessen auf 8MHz stehen
//              "cmsis_boot/stm32f4xx.h"
//              "cmsis_boot/system_stm32f4xx.c"
//--------------------------------------------------------------
 
#include "main.h"
#include "stm32_ub_vga_graphic.h"
 
int main(void)
{
  SystemInit(); // Quarz Einstellungen aktivieren
 
  UB_VGA_Screen_Init(); // Init vom Screen
 
  // LCD mit blau löschen
  UB_VGA_FillScreen(VGA_COL_BLUE);
 
  // Ein Image (aus dem Flash) Zeichnen
  UB_VGA_Graphic_DrawImage(&Emo1_VGA_Image,0,0);
 
  // rote Linie zeichnen
  UB_VGA_Graphic_DrawLine(10,20,100,150,VGA_COL_RED);
 
  // schwarzen kreis zeichnen
  UB_VGA_Graphic_DrawCircle(70,75,50,VGA_COL_BLACK);
 
  while(1)
  {
 
  }
}

Hier die Library zum Download :

ub_stm32f4_vga_graphic_v100

Hier der komplette CooCox-Projektordner zum Download :

Demo_36_VGA2

Hier der Link zu dem PC-Programm :

PC-Programme

2 Antworten auf 36-VGA_Graphic-Library (STM32F4)

  1. ANDREJ sagt:

    Hallo !

    Wie kann ich neu bild laden auf code demo 36 vga? Habe scho probiert mit copie in bild mape aber compilation get nicht meher dan. Error: [cc] C:\Documents and Settings\rfg\My Documents\Prenosi\Demo_36_VGA2(1)\Demo_36_VGA2\ub_lib\bilder\Emo2_VGA_Image.c:11:34: fatal error: ..\stm32_ub_ graphic.h: No such file or directory

    Danke fuer antwort

    • admin_ub sagt:

      Das Bild muss mit dem ImageGenerator.exe in ein “RGB332″ gewandelt werden. Dazu (vor dem umwandeln) auf der rechten Seite das Output-Color-Format auf “VGA-Version” einstellen !


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert