Skip to content

Task #4. Data Input/Output. Serial Interfaces


Description

Отображение данных с помощью LCD1602.


References

Библиотека для STM32CubeIDE:

Пример использования
Lcd_PortType ports[] = {
        GPIOE, GPIOE, GPIOE, GPIOE };
Lcd_PinType pins[] = { GPIO_PIN_12, GPIO_PIN_13, GPIO_PIN_14, GPIO_PIN_15 };
Lcd_HandleTypeDef lcd;
lcd = Lcd_create(ports, pins, GPIOE, GPIO_PIN_7, GPIOE, GPIO_PIN_11, LCD_4_BIT_MODE);
Lcd_string(&lcd, "Hello");
Lcd_cursor(&lcd, 1, 2);
Lcd_string(&lcd, "world");

Guidance

Использовать Git.

Использовать следующие названия директорий: task04 - для проектов решений подзадач; partXX - для проекта решения соответствующей подзадачи (XX - номер подзадачи); src - для исходников; bin - для бинарного файла прошивки (необходимо сохранить в репозитории).

Периодически отправлять изменения в удаленный репозиторий, соответствующий Вашей фамилии.

  1. Секундомер.

    • В первой строке LCD1602 отобразить секундомер в формате:

      ЧЧ:ММ:СС

    • Секундомер запускается при старте программы.

  2. Бегущая строка.

    • В нижней части экрана вывести следующий текст:

      GlobalLogic. Embedded Starter Kit.

    • Отображение текста реализовать в виде бегущей строки.

  3. Одноосевой инклинометр.

    • В первой строке графически отобразить угол наклона. Например, символ в центре строки соответствует нулевому положению; смещение символа влево или вправо соответствует значению угла наклона устройства.

    • В нижней строке вывести:

      • слева - шестнадцатеричный идентификатор микросхемы (значение регистра WHO_AM_I),
      • справа - целое значение угла наклона (-90..+90) в градусах.
    • Нулевое положение фиксировать по нажатию на кнопку.


Extra

  • Реализовать старт/стоп/сброс секундомера по нажатию кнопки.

  • Бегущая строка отображает рекламный текст различных заказчиков. Частота отображения текста должна быть прямопропорциональна оплате. Т.е. текст заказчика, заплатившего $3 должен отображаться в 3 раза чаще, чем текст заказчика, заплатившего $1.