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

Реклама ⓘ

STM32F4. Урок 34 - Подключение символьного LCD-дисплея 16х2 (HD44780)

Данная библиотека используется для управления символьным ЖК-дисплеем с размером 16х2 символов. Программный код совместим с чипами: ST7066U, HD44780, SED1278, KS0066U и S6A0069X.

Дисплей работает в 4-х битном режиме. Для передачи данных используются 6 GPIO-выводов. В C-файле, по желанию, могут быть установлены любые свободные выводы (автор использовал PE5-PE10).

Пример работы:

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

PE5  -> LCD_RS
PE6  -> LCD_E
PE7  -> LCD_DB4
PE8  -> LCD_DB5
PE9  -> LCD_DB6
PE10 -> LCD_DB7

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

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

Перечисления:

typedef enum {
  TLCD_OFF =0,    // Дисплей=off, Курсор=off, Мигание=off
  TLCD_ON,        // Дисплей=on,  Курсор=off, Мигание=off
  TLCD_Cursor,    // Дисплей=on,  Курсор=on,  Мигание=off
  TLCD_BLINK      // Дисплей=on,  Курсор=on,  Мигание=on
}TLCD_MODE_t;

Функции:

void UB_LCD_2x16_Init(void);                              // инициализация дисплея
void UB_LCD_2x16_Clear(void);                             // очистка дисплея
void UB_LCD_2x16_SetMode(TLCD_MODE_t mode);               // установка режима работы дисплея
void UB_LCD_2x16_String(uint8_t x, uint8_t y, char *ptr); // вывод строки на дисплей с координатами x,y

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

//--------------------------------------------------------------
// File     : main.c
// Datum    : 17.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-2x16-Library
// Hinweis  : Diese zwei Files muessen auf 8MHz stehen
//              "cmsis_boot/stm32f4xx.h"
//              "cmsis_boot/system_stm32f4xx.c"
//--------------------------------------------------------------

#include "main.h"
#include "stm32_ub_lcd_2x16.h"

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

  // Инициализация ЖК-дисплея
  UB_LCD_2x16_Init();

  // Печать текста в первой строке
  UB_LCD_2x16_String(0,0,"LCD 2x16 STM32F4");

  // Печать текста в первой строке
  UB_LCD_2x16_String(3,1,"Discovery");

  while(1)
  {

  }
}

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

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

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

Теги:

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

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

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

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

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

0
Владимир #
В оригинале на немецком все нормально. Но зачем было менять TLCD_CURSOR на TLCD_Cursor в enum-e?!
Я уже молчу про такие ошибки как TLCD_PoffE вместо TLCD_PAUSE и т. д.
Ответить
0
Sherpa #
Проблема! CooCox выдает ошибку и не создается HEX файл! Причем ошибка вообще непонятная, идет ссылка на несуществующий каталог и отсутствие там несуществующего файла, причем где это запрашивается и описано НЕПОНЯТНО! Но все что в директории UB LIB не проходит при компиляции! Восклицательный знак что там ошибка!
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
Ветрогенератор iMAX B6 - зарядное для Lion, LiPo, LiFe, Pb, NiCd и NiMH аккумуляторов
вверх