Hi,
I configure the SCI peripheral of two microcontrollers of the aforementioned type to
- a baudrate of 300 bits/s
- 8 bit data length
- no parity
but, one microcontroler is set to one stop bit while the other is configured with two stop bits. When those two communicate to one another, in the code, in the RX ISR the error handling is done like that
// RX Error
if (SciaRegs.SCIRXST.bit.RXERROR == 1U)
{
// RX Break Detection
if (SciaRegs.SCIRXST.bit.BRKDT == 1U)
{
// Handle error ...
}
// SCI framing-error flag
if (SciaRegs.SCIRXST.bit.FE == 1U)
{
// Handle error ...
}
// SCI overrun-error flag
if (SciaRegs.SCIRXST.bit.OE == 1U)
{
// Handle error ...
}
// SCI parity-error
if (SciaRegs.SCIRXST.bit.PE == 1U)
{
// Handle error ...
}
SciaRegs.SCICTL1.bit.SWRESET = 0U;
SciaRegs.SCICTL1.bit.SWRESET = 1U;
return;
}
In the manual from Sept. 2019, p. 2164, field FE, it says "The SCI sets this bit when an expected stop bit is not found. Only the first stop bit is checked." I cannot see, that any error occurs and the communication also works in both directions. Is my code wrong or is this kind of error situation not detectable?
One stop bit:
Two stop bits:

