Эта библиотека предназначена для управления графическим дисплеем с контроллером 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 Кб)
Комментарии (4) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
Буду очень благодарен.
lcdid = P_LCD7783_ReadReg(LCD_ST7783_REG_00);
//if(lcdid==LCD_ST7783_ID) {
// Дисплей найден
ret_wert=SUCCESS;
// Инициализация ЖК-дисплея(портретный режим)
P_LCD7783_InitChip(LCD_ST7783_PORTRAIT);
LCD_DISPLAY_MODE=PORTRAIT;
// Включение подсветки
UB_LCD_Backlight_On();
//}
Дисплей запустил. Убрал проверку ID. Но с карты все равно ничего не читает. Что за карту нужно использовать?