Skip to content

Latest commit

 

History

History
78 lines (57 loc) · 7.46 KB

File metadata and controls

78 lines (57 loc) · 7.46 KB

Требования к содержанию отчёта

  1. Титульный лист, на котором указывается следующая информация: – название университета; – название факультета, кафедры; – название дисциплины; – номер и тема лабораторной работы; – вариант задания; – фамилия, инициалы и номер группы каждого исполнителя; – фамилия и инициалы преподавателя; – текущий год.
  2. Задание к лабораторной работе в соответствии с вариантом.
  3. Описание организации программы и структуры драйверов, блок-схема прикладного алгоритма.
  4. Дополнительные материалы, если они требуются по заданию конкретной лабораторной работы (руководство по использованию и т. п.).
  5. Исходные коды собственной разработки: основная программа, разработанные драйверы и библиотеки (если есть). Коды из стандартных и сторонних библиотек, а также созданные генератором STM32CubeMX, приводить не следует. При большом объеме исходных кодов можно включать только наиболее значимые в данной работе части (например, не включать код, разработанный для предыдущей лабораторной работы). Дополнительно, но не вместо исходных кодов, можно привести ссылку на репозиторий с полной версией проекта.
  6. Выводы, сделанные в процессе выполнения лабораторной работы.

5.4.Лабораторная работа 4. Интерфейс $I^{2} \mathrm{C}$ и матричная клавиатура

Цели работы

  1. Получить базовые знания об интерфейсе $I^{2} \mathrm{C}$ и особенностях передачи данных по данному интерфейсу.
  2. Получить базовые знания об устройстве и принципах работы контроллера интерфейса $I^{2} \mathrm{C}$ в микроконтроллерах и получить навыки его программирования.

Задание

Разработать программу, которая использует интерфейс $I^{2} \mathrm{C}$ для считывания нажатий кнопок клавиатуры стенда SDK-1.1.

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

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

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

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

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

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

  1. Изучить:
  • разделы учебного пособия:

○ 1.6. Интерфейс $I^{2} \mathrm{C}$; ○ 1.7. Матричная клавиатура;

  • электрическую принципиальную схему стенда в части сигналов интерфейса $I^{2} \mathrm{C}$ и подключения к нему внешних микросхем, а также других устройств, если они требуются по варианту задания;
  • разделы справочного руководства RM0090:

о Inter-integrated circuit (I2C) interface;

  • состав стандартных драйверов $I^{2} \mathrm{C}$ из библиотеки HAL и содержимое создаваемых генератором файлов i2c.c/.h (появляются в проекте после настройки соответствующих блоков).
  1. Подготовить шаблон проекта для STM32CubeIDE, настроить тактовые частоты.
  2. Настроить входы и выходы микроконтроллера, таймеры, контроллеры I² ${ }^{2}$ и UART.
  3. Разработать подсистему опроса клавиатуры и протестировать ее.
  4. Разработать необходимые драйверы управляемых светодиодов и/или излучателя звука (зависит от варианта).
  5. Разработать прикладную программу согласно варианту задания и протестировать ее.

Варианты заданий

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