https://github.com/vadrov/stm32-button-nobounce-autorepeat-buffer
Connecting buttons to the microcontroller stm32 with the elimination of contact bounce, with auto-repeat and input buffer. Without HAL (only CMSIS and LL)
https://github.com/vadrov/stm32-button-nobounce-autorepeat-buffer
bounce buttons keyboard stm32
Last synced: about 1 year ago
JSON representation
Connecting buttons to the microcontroller stm32 with the elimination of contact bounce, with auto-repeat and input buffer. Without HAL (only CMSIS and LL)
- Host: GitHub
- URL: https://github.com/vadrov/stm32-button-nobounce-autorepeat-buffer
- Owner: vadrov
- License: mit
- Created: 2022-08-20T12:10:45.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-03-02T15:57:01.000Z (over 2 years ago)
- Last Synced: 2025-02-08T16:20:34.757Z (over 1 year ago)
- Topics: bounce, buttons, keyboard, stm32
- Language: C
- Homepage:
- Size: 332 KB
- Stars: 0
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Copyright (c) 2022 VadRov / www.youtube.com/@VadRov / www.dzen.ru/vadrov
# Модуль для работы с кнопоками на микроконтроллере stm32f4 (и не только stm32f4, и не только stm32).
Путем несложной модификации модуль возможно использовать на любых микроконтроллерах, отвечающих минимальным требованиям.
Модуль позволяет программно устранять дребезг контактов, реализует программируемый автоповтор нажатия кнопки с заданным периодом и реализует
буферизованный ввод с заданной глубиной буфера.
Выводы микроконтроллера, к которым подключаются кнопки, должны быть настроены как входы с подтяжкой по питанию. Как вариант, с использованием
внутренней подтяжки микроконтроллера pull-up, либо внешней через подтягивающий резистор, например, номиналом 10 кОм.
При нажатии кнопки должна осуществляется притяжка входа к "земле" (GND).
Для работы библиотеки требуется 1 таймер с настроенным прерыванием по обновлению.
Возможности модуля keybord:
- Поддержка до 32 кнопок, с учетом того, что на 1 кнопку выделяется 1 вывод микроконтроллера,
настроенный на вход с подтяжкой по питанию.
- Доступна настройка фильтра устранения дребезга.
- Доступен буфер состояний кнопок с настраиваемой глубиной.
- Доступна настройка периодов задержки до первого автоповтора нажатия кнопок и последующих автоповторов.
- Доступно добавление кнопок для опроса посредством вызова соответствующей функции.
- Доступна установка статусов кнопки: "активна" - участвует в опросе, "пассивна" - не участвует в опросе.
- Доступен опрос статуса кнопки (активна либо пассивна).
В проекте, созданном в среде STM32CubeIDE, реализован пример работы с кнопками на микроконтроллере stm32f401ccu6 с использованием
модуля keyboard.
В видео подробно рассказано об использовании модуля и приведен пример построения проекта в среде STM32CubeIDE:
[](https://youtu.be/e-w5HS75neg)
Автор: **VadRov**
Контакты: [Youtube](https://www.youtube.com/@VadRov) [Дзен](https://dzen.ru/vadrov) [VK](https://vk.com/vadrov) [Telegram](https://t.me/vadrov_channel)
Поддержать автора: [donate.yoomoney](https://yoomoney.ru/to/4100117522443917)