SafeSerial
Асинхронная неблокирующая очередь для вывода в Serial на ESP32, исключающая задержки в критическом коде через фоновую задачу FreeRTOS
Установка
Последняя опубликованная версия- Скачайте архив — реестр отдает его уже проверенным.
- В Arduino IDE выберите «Скетч → Подключить библиотеку → Добавить .ZIP библиотеку».
- Укажите скачанный файл — библиотека появится в списке доступных.
SHA-256:b9c3aa83f779fdf00ac7824fceba23c2269a9a0083ef8b148dbb3d28c4935970SafeSerial-1.1.1-b9c3aa83.zipОписание
Асинхронная библиотека для последовательной передачи данных на ESP32, которая решает классическую проблему блокировки кода при выводе в Serial. Вместо прямой отправки в порт каждое сообщение попадает в очередь FIFO, а фоновая задача FreeRTOS занимается передачей когда ресурсы свободны. Это особенно полезно в критических местах кода вроде сетевых callback-функций, где задержка на вывод может нарушить синхронизацию. Библиотека поддерживает UART, HWCDC и USBCDC, унифицируя работу с разными типами портов — обычно используешь те же функции print/println, что и со стандартным Serial. Есть возможность переопределить пины и использовать дополнительные UART-ы. Главное ограничение: после инициализации нужно полностью заменить Serial на SafeSerial во всём коде, иначе возникнут конфликты и блокировки.