mbed library sources. Supersedes mbed-src. Fixed broken STM32F1xx RTC on rtc_api.c
Dependents: Nucleo_F103RB_RTC_battery_bkup_pwr_off_okay
Fork of mbed-dev by
Diff: targets/TARGET_STM/TARGET_STM32L4/serial_device.c
- Revision:
- 170:19eb464bc2be
- Parent:
- 169:e3b6fe271b81
diff -r e3b6fe271b81 -r 19eb464bc2be targets/TARGET_STM/TARGET_STM32L4/serial_device.c --- a/targets/TARGET_STM/TARGET_STM32L4/serial_device.c Wed Jul 19 17:31:21 2017 +0100 +++ b/targets/TARGET_STM/TARGET_STM32L4/serial_device.c Thu Aug 03 13:13:39 2017 +0100 @@ -217,16 +217,15 @@ UART_HandleTypeDef * huart = &uart_handlers[id]; if (serial_irq_ids[id] != 0) { - if (__HAL_UART_GET_FLAG(huart, UART_FLAG_TC) != RESET) { - if (__HAL_UART_GET_IT(huart, UART_IT_TC) != RESET) { - irq_handler(serial_irq_ids[id], TxIrq); - __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC); + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_TXE) != RESET) { + if (__HAL_UART_GET_IT(huart, UART_IT_TXE) != RESET) { + irq_handler(serial_irq_ids[id], TxIrq); } } if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RXNE) != RESET) { if (__HAL_UART_GET_IT(huart, UART_IT_RXNE) != RESET) { - irq_handler(serial_irq_ids[id], RxIrq); - __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_RXNE); + irq_handler(serial_irq_ids[id], RxIrq); + /* Flag has been cleared when reading the content */ } } if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) != RESET) { @@ -330,7 +329,7 @@ if (irq == RxIrq) { __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE); } else { // TxIrq - __HAL_UART_ENABLE_IT(huart, UART_IT_TC); + __HAL_UART_ENABLE_IT(huart, UART_IT_TXE); } NVIC_SetVector(irq_n, vector); NVIC_EnableIRQ(irq_n); @@ -344,7 +343,7 @@ all_disabled = 1; } } else { // TxIrq - __HAL_UART_DISABLE_IT(huart, UART_IT_TC); + __HAL_UART_DISABLE_IT(huart, UART_IT_TXE); // Check if RxIrq is disabled too if ((huart->Instance->CR1 & USART_CR1_RXNEIE) == 0) { all_disabled = 1;