in reply to Losing bytes with Device::SerialPort ?

It sounds like the UART FIFO buffering is not enabled. It is on by default in Windows, but may not be in your OS.

In multitasking OSs, the OS may not be able to respond to an IRQ for serial ports in a timely manner as it may be servicing a higher priority IRQ. There is a 16-byte (16550A) or 64-byte (16750) hardware buffer on most modern 16550 compatible UARTS that allows the chip to buffer incoming data before raising an IRQ, but it needs to be turned on.

A Google search turned up this explaination relating to Linux, and there are several other linux-related references describing the utilities available for querying and setting the serial port configuration.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
  • Comment on Re: Losing bytes with Device::SerialPort ?