04-LCD-Library (STM32F746)

Beschreibung :

Mit dieser Library können Grafik-LCD Funktionen (24bit RGB) auf dem STM32F746 Discovery-Board benutzt werden. Der Zugriff erfolgt über den TFT-Controller. Die Auflösung ist 480 x 272 Pixel. Der Farbmode hat 16bit. Das Display ist von Rocktech und hat die Module Bezeichnung: RK043FN48H-CT672B. Es ist ein 4.3″ TFT mit LED Backlight und kapazitives Touch Panel. Hier das Datenblatt vom Hersteller:

Das Display benutzt folgende CPU-Pins :

  PI15 = R0    PJ7  = G0    PE4  = B0
  PJ0  = R1    PJ8  = G1    PJ13 = B1
  PJ1  = R2    PJ9  = G2    PJ14 = B2
  PJ2  = R3    PJ10 = G3    PJ15 = B3
  PJ3  = R4    PJ11 = G4    PG12 = B4
  PJ4  = R5    PK0  = G5    PK4  = B5
  PJ5  = R6    PK1  = G6    PK5  = B6
  PJ6  = R7    PK2  = G7    PK6  = B7
  PI14 = CLK   PK7  = DE
 
  PI10 = HSYNC       PI9  = VSYNC
  PK3  = Backlight   PI12 = Display

Das externe SDRAM wird als Grafik-RAM benutzt HSYNC+VSYNC im H-File aktivieren falls notwendig.

Module :

1
stm32_ub_lcd_480x272.h, stm32_ub_lcd_480x272.c

Includes :

1
#include "stm32_ub_system.h"

Defines :

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//--------------------------------------------------------------
// aktivieren von HSync/VSync Impulsen (an PI9, PI10)
// 0 = HSYNC, VSYNC wird nicht benutzt
// 1 = HSYNC, VSYNC wird benutzt
//--------------------------------------------------------------
#define   USE_SYNC_GPIO    1  // HSYNC, VSYNC GPIOs werden benutzt
//#define   USE_SYNC_GPIO    0  // HSYNC, VSYNC GPIOs werden nicht benutzt
 
 
 
//--------------------------------------------------------------
// Display Timing
//--------------------------------------------------------------
#define  RK043FN48H_HSYNC            ((uint16_t)41)   /* Horizontal synchronization */
#define  RK043FN48H_HBP              ((uint16_t)13)   /* Horizontal back porch      */
#define  RK043FN48H_HFP              ((uint16_t)32)   /* Horizontal front porch     */
#define  RK043FN48H_VSYNC            ((uint16_t)10)   /* Vertical synchronization   */
#define  RK043FN48H_VBP              ((uint16_t)2)    /* Vertical back porch        */
#define  RK043FN48H_VFP              ((uint16_t)2)    /* Vertical front porch       */
#define  RK043FN48H_FREQUENCY_DIVIDER    5            /* LCD Frequency divider      */
 
 
//--------------------------------------------------------------
// Display-Pin
//--------------------------------------------------------------
#define LCD_DISP_PIN                    GPIO_PIN_12
#define LCD_DISP_GPIO_PORT              GPIOI
#define LCD_DISP_GPIO_CLK_ENABLE()      __HAL_RCC_GPIOI_CLK_ENABLE()
#define LCD_DISP_GPIO_CLK_DISABLE()     __HAL_RCC_GPIOI_CLK_DISABLE()
 
//--------------------------------------------------------------
// Backlight-Pin
//--------------------------------------------------------------
#define LCD_BL_CTRL_PIN                  GPIO_PIN_3
#define LCD_BL_CTRL_GPIO_PORT            GPIOK
#define LCD_BL_CTRL_GPIO_CLK_ENABLE()    __HAL_RCC_GPIOK_CLK_ENABLE()
#define LCD_BL_CTRL_GPIO_CLK_DISABLE()   __HAL_RCC_GPIOK_CLK_DISABLE()
 
 
 
 
//--------------------------------------------------------------
// Standard Farbwerte
// 16bit Farbwert (R5G6B5)
// Red   (5bit) -> Bit15-Bit11
// Green (6bit) -> Bit10-Bit5
// Blue  (5bit) -> Bit4-Bit0
//--------------------------------------------------------------
#define  RGB_COL_BLACK          0x0000
#define  RGB_COL_BLUE           0x001F
#define  RGB_COL_GREEN          0x07E0
#define  RGB_COL_RED            0xF800
#define  RGB_COL_WHITE          0xFFFF
 
#define  RGB_COL_CYAN           0x07FF
#define  RGB_COL_MAGENTA        0xF81F
#define  RGB_COL_YELLOW         0xFFE0
 
#define  RGB_COL_GREY           0xF7DE
 
//--------------------------------------------------------------
// Display Mode
//--------------------------------------------------------------
typedef enum {
  PORTRAIT =0,
  LANDSCAPE
}LCD_MODE_t;
LCD_MODE_t  LCD_DISPLAY_MODE;
 
 
//--------------------------------------------------------------
// Globale Variabeln
//--------------------------------------------------------------
uint32_t LCD_CurrentFrameBuffer;   // aktuelle Adresse zum zeichnen
uint32_t LCD_CurrentLayer;         // 0=Hintergrund, 1=Vodergrund
uint32_t LCD_CurrentOrientation;   // 0=0Grad, 1=180Grad
 
 
 
//--------------------------------------------------------------
// Defines vom Display (im Landscape-Mode)
//--------------------------------------------------------------
#define  LCD_MAXX           ((uint16_t)480)      // Pixel in X-Richtung
#define  LCD_MAXY           ((uint16_t)272)      // Pixel in Y-Richtung
#define  LCD_PIXEL  LCD_MAXX*LCD_MAXY
 
#define  LCD_INIT_PAUSE   16600 // ca 1ms
 
 
 
 
//--------------------------------------------------------------
// Defines für das Display-RAM
//--------------------------------------------------------------
#define  LCD_FRAME_BUFFER     SDRAM_START_ADR         // Start vom SDRAM
#define  LCD_FRAME_OFFSET   ((uint32_t)(LCD_PIXEL*2)) // größe von einem Puffer (in Byte)
 
//--------------------------------------------------------------
// sonst
//--------------------------------------------------------------
#define  RK043FN48H_WIDTH    LCD_MAXX
#define  RK043FN48H_HEIGHT   LCD_MAXY

Funktionen :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ErrorStatus UB_LCD_Init(void);
void UB_LCD_LayerInit_Fullscreen(void);
void UB_LCD_SetLayer_1(void);
void UB_LCD_SetLayer_2(void);
void UB_LCD_FillLayer(uint16_t color);
void UB_LCD_SetTransparency(uint8_t wert);
void UB_LCD_SetCursor2Draw(uint16_t xpos, uint16_t ypos);
void UB_LCD_DrawPixel(uint16_t color);
void UB_LCD_SetMode(LCD_MODE_t mode);
void UB_LCD_Rotate_0(void);
void UB_LCD_Rotate_180(void);
void UB_LCD_Copy_Layer1_to_Layer2(void);
void UB_LCD_Copy_Layer2_to_Layer1(void);
void UB_LCD_Refresh(void);

Beispiel :
Siehe: 01-F746-Demo LED, Button, LCD, Text und Grafik

Hier die Library zum Download :

04 = LCD : f746_lcd480272_v100


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.