Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

STM32F4. Урок 6 - работа с дисплеем ST7783

Эта библиотека предназначена для управления графическим дисплеем с контроллером 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 и отдельная библиотека для использования в других проектах. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.

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

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

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (4) | Я собрал (0) | Подписаться

0
Дмитрий #
Жаль для начинающих эти статьи бесполезны. Нет пояснений что за дисплей, как он подключается и т.д..
Ответить
0

[Автор]
Rough #
Тут, правильнее будет сказать, описывается работа не с дисплеем, а с его контроллером, дисплеев может быть уйма таких. Просто вбейте в Гугл, и увидите. Если останутся вопросы по подключению, пишите, постараюсь помочь.
Ответить
0
Алексей #
А можно ссылку на конкретный дисплей?
Буду очень благодарен.
Ответить
0
Андрей #
Не совсем хорошо получается. При загрузке проекта в плату дисплей не работает. Не нужно проверять ID дисплея для того чтобы провести инициализацию. Сделал так:
// Зачитать ID LCD
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();
//}
Закоментировал строки 68 и 76 (проверку ID дисплея) в файле stm32_ub_lcd_st7783.с только тогда запустился.
Дисплей запустил. Убрал проверку ID. Но с карты все равно ничего не читает. Что за карту нужно использовать?
Прикрепленный файл: P1020807.JPG
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Ручной фен 450 Вт с регулировкой температуры Мини гравер 125 Ватт
вверх