Главная chevron_right Функции chevron_right USB chevron_right Keyboard.end()

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() безопасен и просто не делает ничего.