STM32F4. Урок 33 — Работа с дисплеем SSD1289

Данная библиотека позволяет управлять графическим LCD дисплеем на контроллере SSD1289 (Разрешение 240 х 320 пикселей и 16-бит цвета).

Дисплей управляется с помощью внешнего контроллера памяти “FSMC” и, следовательно, должен быть подключен к микроконтроллеру (см. распиновку в библиотеке).

В библиотеку включены основные функции, такие как инициализация, ориентации экрана, подсветка, перемещение курсора и очистка экрана.

Для графических функций (линия, круг, рисунок) существует графическая библиотека, для вывода текста — библиотека шрифтов.

Подсветка:

Подсветка дисплея должна быть подключена непосредственно к порту микроконтроллера !! Необходимо установить PNP транзистор (см. рисунок). [PB0 = LED_EN]

16-битный 8080-параллельный режим:

PS0 = Hi
PS1 = Lo
PS2 = Lo
PS3 = Hi

Используемые пины:

PB0 -> LCD_подсветка PE3 -> LCD_RS
PD0 -> LCD_D2 PE7 -> LCD_D4
PD1 -> LCD_D3 PE8 -> LCD_D5
PD4 -> LCD_RD PE9 -> LCD_D6
PD5 -> LCD_WR PE10 -> LCD_D7
PD7 -> LCD_CS PE11 -> LCD_D8
PD8 -> LCD_D13 PE12 -> LCD_D9
PD9 -> LCD_D14 PE13 -> LCD_D10
PD10 -> LCD_D15 PE14 -> LCD_D11
PD14 -> LCD_D0 PE15 -> LCD_D12
PD15 -> LCD_D1

Требуемые библиотеки:

Подключаемые модули CooCox-IDE: GPIO,FSMC
Поддерживаемые библиотеки: отсутствуют

Стандартные цвета:

#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

Функции:

ErrorStatus UB_LCD_Init(void); // инициализация LCD
void UB_LCD_SetCursor2Draw(uint16_t xpos, uint16_t ypos); // установка позиции курсора
void UB_LCD_FillScreen(uint16_t color); // залить экран цветом
void UB_LCD_Backlight_On(void); // Включить подсветку
void UB_LCD_Backlight_Off(void); // Выключить подсветку
void UB_LCD_SetMode(LCD_MODE_t mode); // режим : портретный, альбомный
void UB_LCD_SetWindow(uint16_t xstart, uint16_t ystart, uint16_t xend, uint16_t yend); // установка размера окна

Пример использования:

//—————————————————————
// File : main.c
// Datum : 14.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 LCD-Library (SSD1289)
// Hinweis : Diese zwei Files muessen auf 8MHz stehen
// «cmsis_boot/stm32f4xx.h»
// «cmsis_boot/system_stm32f4xx.c»
//—————————————————————

#include «main.h»
#include «stm32_ub_lcd_ssd1289.h»

int main(void)
{
uint32_t n;

SystemInit(); // Инициализация настроек кварца

UB_LCD_Init(); // инициализация LCD

// Очистка дисплея заливкой цветом
UB_LCD_FillScreen(RGB_COL_BLUE);

// Перемещение курсора
UB_LCD_SetCursor2Draw(10,50);
// нарисовать красную линию
for(n=0;n<100;n++) {
LCD_RAM=RGB_COL_RED;
}

while(1)
{

}
}

В приложении проект CooCox и отдельная библиотека для использования в других проектах. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.

Оригинал статьи

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.