Keyboard.end()
Вызов Keyboard.end() останавливает эмуляцию USB-клавиатуры — плата перестаёт отправлять нажатия клавиш до следующего Keyboard.begin().
Полная статья
Описание
Keyboard.end() отключает эмуляцию USB-клавиатуры: после вызова этой функции плата перестаёт отправлять компьютеру какие-либо нажатия клавиш. Это полезно, когда клавиатурный ввод нужен только на определённом этапе работы скетча, а затем его необходимо явно остановить.
Чтобы снова включить эмуляцию, вызовите Keyboard.begin().
Синтаксис
Keyboard.end()
Параметры
Нет
Возвращает
Ничего
Пример кода
#include <Keyboard.h>
void setup() {
//начать обмен данными с клавиатурой
Keyboard.begin();
//отправить нажатие клавиши
Keyboard.print("Hello!");
//завершить обмен данными с клавиатурой
Keyboard.end();
}
void loop() {
//ничего не делать
}
Где применяется
- Одноразовый ввод — плата вводит данные (например, логин или пароль) и сразу отключает клавиатуру, чтобы случайные нажатия не попали в систему.
- Чередование режимов — скетч поочерёдно включает и выключает эмуляцию в зависимости от состояния кнопки или внешнего сигнала.
- Безопасное завершение — если эмуляция клавиатуры больше не нужна до следующей перезагрузки,
Keyboard.end()гарантирует, что плата не будет случайно отправлять символы.
Практические замечания
Keyboard.end()работает только на платах с нативной поддержкой USB (Leonardo, Micro, Due, Zero и аналогичных). На Uno и Mega эта функция недоступна.- После вызова
Keyboard.end()любые последующие вызовыKeyboard.press(),Keyboard.write()и других функций библиотеки не будут иметь эффекта — сначала нужно снова вызватьKeyboard.begin(). - Если в момент вызова
Keyboard.end()какие-то клавиши удерживались черезKeyboard.press(), рекомендуется предварительно вызватьKeyboard.releaseAll(), чтобы не оставить «залипших» клавиш на стороне компьютера. - Вызов
Keyboard.end()вsetup()без предшествующегоKeyboard.begin()безопасен и просто не делает ничего.