diff --git a/os/hal/src/hal_uart.c b/os/hal/src/hal_uart.c index 8df77adb5..89276f28f 100644 --- a/os/hal/src/hal_uart.c +++ b/os/hal/src/hal_uart.c @@ -384,7 +384,7 @@ msg_t uartSendTimeout(UARTDriver *uartp, size_t *np, /* Waiting for result.*/ msg = osalThreadSuspendTimeoutS(&uartp->threadtx, timeout); if (msg != MSG_OK) { - *np = uartStopSendI(uartp); + *np -= uartStopSendI(uartp); } osalSysUnlock(); @@ -475,7 +475,7 @@ msg_t uartReceiveTimeout(UARTDriver *uartp, size_t *np, /* Waiting for result.*/ msg = osalThreadSuspendTimeoutS(&uartp->threadrx, timeout); if (msg != MSG_OK) { - *np = uartStopReceiveI(uartp); + *np -= uartStopReceiveI(uartp); } osalSysUnlock(); diff --git a/readme.txt b/readme.txt index ec4d0951b..7703f3348 100644 --- a/readme.txt +++ b/readme.txt @@ -89,6 +89,7 @@ ***************************************************************************** *** 17.6.1 *** +- HAL: Fixed error in uartReceiveTimeout() and uartSendTimeout() (bug #883). - HAL: Fixed TIMx DBL field macro broken (bug #880). - HAL: Fixed STM32 SPI problem in spi_lld_start() (bug #879). - HAL: Fixed invalid STM32 CAN3 filters initialization (bug #878).