diff --git a/cube/User/Src/mbusComm.c b/cube/User/Src/mbusComm.c index bb21526..06da0fc 100644 --- a/cube/User/Src/mbusComm.c +++ b/cube/User/Src/mbusComm.c @@ -271,7 +271,9 @@ void mbusCommISR() { mbusCommHandle.receiveBuffer.buffer[mbusCommHandle.receiveBuffer.writeIdx] = data; mbusCommHandle.receiveBuffer.writeIdx += 1; } - } else if ((isrflags & USART_SR_TXE) != RESET) { + } + + if ((isrflags & USART_SR_TXE) != RESET) { if (mbusCommHandle.sendBuffer.readIdx < mbusCommHandle.sendBuffer.writeIdx) { mbusUart.Instance->DR = mbusCommHandle.sendBuffer.buffer[mbusCommHandle.sendBuffer.readIdx]; mbusCommHandle.sendBuffer.readIdx += 1; @@ -280,16 +282,19 @@ void mbusCommISR() { __HAL_UART_ENABLE_IT(&mbusUart, UART_IT_TC); } } - } else if ((isrflags & USART_SR_TC) != RESET) { + } + + if ((isrflags & USART_SR_TC) != RESET) { __HAL_UART_DISABLE_IT(&mbusUart, UART_IT_TC); mbusCommHandle.state = MBCS_SENDING_DONE; - } else { - if ((isrflags & USART_SR_FE) != RESET) { + } + + if ((isrflags & USART_SR_FE) != RESET) { mbusCommStats.uartFramingErrCnt += 1; - } - if ((isrflags & USART_SR_PE) != RESET) { + } + + if ((isrflags & USART_SR_PE) != RESET) { mbusCommStats.uartParityErrCnt += 1; - } } }