I'm not overly familiar with serialEvent()
from HardwareSerial.cpp
void serialEventRun(void)
{
#ifdef serialEvent_implemented
if (Serial.available()) serialEvent();
#endif
#ifdef serialEvent1_implemented
if (Serial1.available()) serialEvent1();
#endif
#ifdef serialEvent2_implemented
if (Serial2.available()) serialEvent2();
#endif
#ifdef serialEvent3_implemented
if (Serial3.available()) serialEvent3();
#endif
}
called from main()
#include <Arduino.h>
int main(void)
{
init();
#if defined(USBCON)
USB.attach();
#endif
setup();
for (;;) {
loop();
if (serialEventRun) serialEventRun();
}
return 0;
}
Not a "multitasking background event" but checked once per loop and it won't interfere with your loop code ..
Never used it, as it gives no clue about the amount of data available --> SerialEvent improvement - Libraries - Arduino Forum