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

Mouse.end()

Mouse.end() останавливает эмуляцию USB-мыши — после вызова плата перестаёт отправлять HID-команды курсора и кнопок до следующего Mouse.begin().

Полная статья

Описание

Mouse.end() останавливает эмуляцию USB-мыши. После вызова этой функции плата перестаёт отправлять компьютеру любые HID-команды мыши: ни движения курсора, ни нажатия кнопок через библиотеку Mouse больше не передаются.

Это удобно, когда управление мышью нужно только в определённый момент работы скетча — например, пока удерживается физическая кнопка или пока активен конкретный режим устройства. После того как задача выполнена, эмуляцию стоит отключить, чтобы плата не вмешивалась в работу курсора случайно.

Чтобы снова включить управление мышью, вызовите Mouse.begin().

Синтаксис

Mouse.end()

Параметры

Нет

Возвращает

Ничего

Пример кода

    #include <Mouse.h>

    void setup() {
      pinMode(2, INPUT);
      //инициализация библиотеки Mouse
      Mouse.begin();
    }

    void loop() {
      //если кнопка нажата, отправить клик левой кнопкой мыши
      //затем завершить эмуляцию мыши
      if (digitalRead(2) == HIGH) {
        Mouse.click();
        Mouse.end();
      }
    }

Где применяется

  • Устройство работает как мышь только в определённом режиме, а в остальное время должно вести себя как обычный USB-контроллер.
  • Скетч переключается между несколькими HID-профилями: мышь включается и выключается по необходимости.
  • Защита от случайного смещения курсора во время отладки через Serial Monitor.
  • Временная пауза в эмуляции мыши до получения подтверждения от пользователя.

Практические замечания

  • Mouse.end() полезен, когда режим мыши нужен только временно: включили — сделали нужные действия — выключили.
  • Если перед отключением эмуляции кнопка мыши была зажата через Mouse.press(), обязательно сначала вызовите Mouse.release(). Иначе операционная система может «застрять» с удержанной кнопкой, что приведёт к непредсказуемому поведению курсора.
  • Даже после Mouse.end() скетч продолжает выполняться в штатном режиме — отключается только отправка HID-команд мыши, всё остальное (Serial, пины, таймеры) работает как обычно.
  • Функция не сбрасывает состояние кнопок внутри библиотеки: если вы снова вызовете Mouse.begin(), убедитесь, что логическое состояние кнопок соответствует тому, что ожидает ваш код.
  • Поддержка эмуляции мыши доступна только на платах с нативной поддержкой USB (Leonardo, Micro, Due и аналогичных). На Uno и Mega эти функции недоступны.

Полезные материалы