diff --git a/freemodbus/modbus/ascii/mbascii_m.c b/freemodbus/modbus/ascii/mbascii_m.c index f0b1fe9..99e3bb4 100644 --- a/freemodbus/modbus/ascii/mbascii_m.c +++ b/freemodbus/modbus/ascii/mbascii_m.c @@ -274,8 +274,8 @@ xMBMasterASCIIReceiveFSM( void ) usMasterRcvBufferPos = 0; eBytePos = BYTE_HIGH_NIBBLE; eRcvState = STATE_M_RX_RCV; + eSndState = STATE_M_TX_IDLE; } - eSndState = STATE_M_TX_IDLE; break; /* A new character is received. If the character is a ':' the input diff --git a/freemodbus/modbus/rtu/mbrtu_m.c b/freemodbus/modbus/rtu/mbrtu_m.c index bb44602..5fa585d 100644 --- a/freemodbus/modbus/rtu/mbrtu_m.c +++ b/freemodbus/modbus/rtu/mbrtu_m.c @@ -284,12 +284,12 @@ xMBMasterRTUReceiveFSM( void ) * Disable timer of respond timeout and change the transmiter state to idle. */ vMBMasterPortTimersDisable( ); - eSndState = STATE_M_TX_IDLE; usMasterRcvBufferPos = 0; if( xStatus && ucByte ) { ucMasterRTURcvBuf[usMasterRcvBufferPos++] = ucByte; eRcvState = STATE_M_RX_RCV; + eSndState = STATE_M_TX_IDLE; } /* Enable t3.5 timers. */