Skip to content

Latest commit

 

History

History
62 lines (32 loc) · 5.12 KB

README.md

File metadata and controls

62 lines (32 loc) · 5.12 KB

Лабораторная работа 4. Интерфейс I2C и матричная клавиатура

Цели работы

  1. Получить базовые знания об интерфейсе I2C и особенностях передачи данных по данному интерфейсу.

  2. Получить базовые знания об устройстве и принципах работы контроллера интерфейса I2C в микроконтроллерах и получить навыки его программирования.

Задание

Разработать программу, которая использует интерфейс I2C для считывания нажатий кнопок клавиатуры стенда SDK-1.1.

Подсистема опроса клавиатуры должна удовлетворять следующим требованиям:

  • реализуется защита от дребезга;

  • нажатие кнопки фиксируется сразу после того, как было обнаружено, что кнопка нажата (с учетом защиты от дребезга), а не в момент отпускания кнопки; если необходимо, долгое нажатие может фиксироваться отдельно;

  • кнопка, которая удерживается дольше, чем один цикл опроса, не считается повторно нажатой до тех пор, пока не будет отпущена (нет переповторов);

  • распознается и корректно обрабатывается множественное нажатие (при нажатии более чем одной кнопки считается, что ни одна кнопка не нажата, если это не противоречит требованиям к программе);

  • всем кнопкам назначаются коды от 1 до 12 (порядок на усмотрение исполнителей).

Программа должна иметь два режима работы, переключение между которыми производится по нажатию кнопки на боковой панели стенда:

  • режим тестирования клавиатуры;
  • прикладной режим.

Уведомление о смене режима выводится в UART.

В режиме тестирования клавиатуры программа выводит в UART коды нажатых кнопок.

В прикладном режиме программа обрабатывает нажатия кнопок и выполняет действия в соответствии с вариантом задания.

Порядок выполнения работы

Изучить

  • разделы учебного пособия:

    1. 1.6. Интерфейс I2C;

    2. 1.7. Матричная клавиатура;

  • электрическую принципиальную схему стенда в части сигналов интерфейса I2C и подключения к нему внешних микросхем, а также других устройств, если они требуются по варианту задания;

  • разделы справочного руководства RM0090: Inter-integrated circuit (I2C) interface;

  • состав стандартных драйверов I2C из библиотеки HAL и содержимое создаваемых генератором файлов i2c.c/.h (появляются в проекте после настройки соответствующих блоков).

Подготовить шаблон проекта для STM32CubeIDE, настроить тактовые частоты

Настроить входы и выходы микроконтроллера, таймеры, контроллеры I2C и UART

Разработать подсистему опроса клавиатуры и протестировать ее

Разработать необходимые драйверы управляемых светодиодов

Разработать прикладную программу согласно варианту задания и протестировать ее

Задания аналогичны вариантам лабораторной работы 3, за исключением того, что ввод символов должен выполняться не с клавиатуры через UART, а с помощью клавиатуры стенда. Выбор кнопок клавиатуры стенда, играющих роль кнопок клавиатуры компьютера должен выполняться по усмотрению исполнителей. В отчете необходимо привести описание функций кнопок в реализованной программе.