That's just it, you're giving it enough time to TX the data, but in the process of Pausing for 100ms afterwards, you might've missed 200-ish bits of serial data. The receive buffer is only 2 bytes deep (1 if you want be conservative). I'd say pause for 1 byte time, 4ms (2400 baud = .416ms/bit = 4.16ms/byte) instead of 100ms.
The SERIN and SEROUT commands won't let the program continue until they're finished transmitting or receiving.
HSERIN/HSEROUT, not sure about them, as I generally access the serial port registers directly rather than using the commands.
I would assume that they would act the same as SERIN and SEROUT for continuity purposes, but, I would hope that they would be 'non-blocking' commands (unless WAIT is used with HSERIN of course).



,DATARECEIVED] 

Bookmarks