-
Получить базовые знания об интерфейсе I2C и особенностях передачи данных по данному интерфейсу.
-
Получить базовые знания об устройстве и принципах работы контроллера интерфейса I2C в микроконтроллерах и получить навыки его программирования.
Разработать программу, которая использует интерфейс I2C для считывания нажатий кнопок клавиатуры стенда SDK-1.1.
Подсистема опроса клавиатуры должна удовлетворять следующим требованиям:
-
реализуется защита от дребезга;
-
нажатие кнопки фиксируется сразу после того, как было обнаружено, что кнопка нажата (с учетом защиты от дребезга), а не в момент отпускания кнопки; если необходимо, долгое нажатие может фиксироваться отдельно;
-
кнопка, которая удерживается дольше, чем один цикл опроса, не считается повторно нажатой до тех пор, пока не будет отпущена (нет переповторов);
-
распознается и корректно обрабатывается множественное нажатие (при нажатии более чем одной кнопки считается, что ни одна кнопка не нажата, если это не противоречит требованиям к программе);
-
всем кнопкам назначаются коды от 1 до 12 (порядок на усмотрение исполнителей).
Программа должна иметь два режима работы, переключение между которыми производится по нажатию кнопки на боковой панели стенда:
- режим тестирования клавиатуры;
- прикладной режим.
Уведомление о смене режима выводится в UART.
В режиме тестирования клавиатуры программа выводит в UART коды нажатых кнопок.
В прикладном режиме программа обрабатывает нажатия кнопок и выполняет действия в соответствии с вариантом задания.
-
разделы учебного пособия:
-
1.6. Интерфейс I2C;
-
1.7. Матричная клавиатура;
-
-
электрическую принципиальную схему стенда в части сигналов интерфейса I2C и подключения к нему внешних микросхем, а также других устройств, если они требуются по варианту задания;
-
разделы справочного руководства RM0090: Inter-integrated circuit (I2C) interface;
-
состав стандартных драйверов I2C из библиотеки HAL и содержимое создаваемых генератором файлов i2c.c/.h (появляются в проекте после настройки соответствующих блоков).
Задания аналогичны вариантам лабораторной работы 3, за исключением того, что ввод символов должен выполняться не с клавиатуры через UART, а с помощью клавиатуры стенда. Выбор кнопок клавиатуры стенда, играющих роль кнопок клавиатуры компьютера должен выполняться по усмотрению исполнителей. В отчете необходимо привести описание функций кнопок в реализованной программе.