diff --git a/cube/User/Src/mbusComm.c b/cube/User/Src/mbusComm.c index 0eaba11..a8569bc 100644 --- a/cube/User/Src/mbusComm.c +++ b/cube/User/Src/mbusComm.c @@ -259,6 +259,7 @@ void mbusCommISR() { show(DEBUG_1, TOGGLE); uint32_t isrflags = READ_REG(mbusUart.Instance->SR); + uint32_t cr1its = READ_REG(mbusUart.Instance->CR1); if (((isrflags & USART_SR_RXNE) != RESET) || ((isrflags & USART_SR_ORE) != RESET)) { if ((isrflags & USART_SR_ORE) != RESET) { @@ -274,7 +275,7 @@ void mbusCommISR() { } } - if ((isrflags & USART_SR_TXE) != RESET) { + if (((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET)) { coloredMsg(LOG_RED, false, "TXE"); if (mbusCommHandle.sendBuffer.readIdx < mbusCommHandle.sendBuffer.writeIdx) { mbusUart.Instance->DR = mbusCommHandle.sendBuffer.buffer[mbusCommHandle.sendBuffer.readIdx];