Лёгкая реализация UART для ATmega328 и подобных из этого поколения
- Полный аналог Serial
- Опционально работа с буфером/без
- Опционально наследует Print.h
- Опционально наследует Stream.h
ATmega328 и подобные из этого поколения
- Библиотеку можно найти по названию MicroUART и установить через менеджер библиотек в:
- Arduino IDE
- Arduino IDE v2
- PlatformIO
- Скачать библиотеку .zip архивом для ручной установки:
- Распаковать и положить в C:\Program Files (x86)\Arduino\libraries (Windows x64)
- Распаковать и положить в C:\Program Files\Arduino\libraries (Windows x32)
- Распаковать и положить в Документы/Arduino/libraries/
- (Arduino IDE) автоматическая установка из .zip: Скетч/Подключить библиотеку/Добавить .ZIP библиотеку… и указать скачанный архив
- Читай более подробную инструкцию по установке библиотек здесь
- Рекомендую всегда обновлять библиотеку: в новых версиях исправляются ошибки и баги, а также проводится оптимизация и добавляются новые фичи
- Через менеджер библиотек IDE: найти библиотеку как при установке и нажать "Обновить"
- Вручную: удалить папку со старой версией, а затем положить на её место новую. "Замену" делать нельзя: иногда в новых версиях удаляются файлы, которые останутся при замене и могут привести к ошибкам!
MicroUART uart;
void MU_serialEvent(); // вызывается в прерывании при приёме байта (см. пример)
Остальные методы - как у Serial
// дефайны настроек. Прописывать ПЕРЕД подключением библиотеки
#define MU_STREAM // подключить Stream.h (readString, readBytes...)
#define MU_PRINT // подключить Print.h (print, println)
#define MU_TX_BUF 64 // буфер отправки. По умолч. 8. Можно отключить (0)
#define MU_RX_BUF 64 // буфер приёма. По умолч. 8. Можно отключить (0)
Остальные примеры смотри в examples!
//#define MU_STREAM // подключить Stream.h (readString, readBytes...)
#define MU_PRINT // подключить Print.h (print, println)
//#define MU_TX_BUF 64 // буфер отправки. По умолч. 8. Можно отключить (0)
//#define MU_RX_BUF 64 // буфер приёма. По умолч. 8. Можно отключить (0)
#include <MicroUART.h>
MicroUART uart;
void setup() {
uart.begin(9600);
pinMode(13, 1);
}
void loop() {
while (uart.available()) uart.write(uart.read());
uart.println("123456789");
delay(1000);
}
// вызывается в прерывании при приёме байта
void MU_serialEvent() {
static bool val = 0;
digitalWrite(13, val = !val);
//uart.write(uart.read());
}
- v1.0
- v1.0.1 - мелкие фиксы
При нахождении багов создавайте Issue, а лучше сразу пишите на почту alex@alexgyver.ru
Библиотека открыта для доработки и ваших Pull Request'ов!
При сообщении о багах или некорректной работе библиотеки нужно обязательно указывать:
- Версия библиотеки
- Какой используется МК
- Версия SDK (для ESP)
- Версия Arduino IDE
- Корректно ли работают ли встроенные примеры, в которых используются функции и конструкции, приводящие к багу в вашем коде
- Какой код загружался, какая работа от него ожидалась и как он работает в реальности
- В идеале приложить минимальный код, в котором наблюдается баг. Не полотно из тысячи строк, а минимальный код