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 эти функции недоступны.