Эта библиотека предназначена для управления графическим дисплеем с контроллером ST7783 (240х320 пикселей и 16-бит). Дисплей управляется внешней шиной контроллера FSMC, и следовательно должен быть подключен к CPU (смотрите назначение выводов в библиотеке). Библиотека выполняет основные функции, такие как иициализация, ориентаци я экрана, подсветка, установка курсора и очистка экрана. Для графических функций (круги, изображения и тд) существуют отдельные библиотеки. Для вывода текста есть библиотеки шрифтов. Скорость: очистка экрана занимает около 9мс.
Подсветка:
Сигнал управления подсветкой «LCD_Backlight» не может (и не должен) быть подключен непосредственно к светодиодной подсветке. Там должен быть установлен PNP-транзистор для коммутации (смотреть рисунок). [PB0 = LED_EN]
16-ти битный 8080-параллельный режим:
IM0 = Lo
IM1 = Hi
IM2 = Lo
IM3 = Lo
Пример изображения (используется графическая библиотека):
Используемые выводы:
PB0 -> LCD_Backlight 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 : 18.02.2013
// Version : 1.1
// 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 (ST7783)
// Hinweis : Diese zwei Files muessen auf 8MHz stehen
// «cmsis_boot/stm32f4xx.h»
// «cmsis_boot/system_stm32f4xx.c»
//—————————————————————
#include «main.h»
#include «stm32_ub_lcd_st7783.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 и отдельная библиотека для использования в других проектах. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.
Прикрепленные файлы:
- ub_stm32f4_lcd_st7783_v106_RUS.rar (6 Кб)
- Demo_06_LCD1_RUS.rar (169 Кб)