From 8c71fbc07f34672db1b24d9adad7d34fc2fc7b92 Mon Sep 17 00:00:00 2001 From: Mahadevan Mahesh Date: Tue, 10 Jan 2017 10:45:28 -0600 Subject: [PATCH] K64F UART Asynch API: Fix synchronization issue The UART state should be set to busy before starting the transfer Signed-off-by: Mahadevan Mahesh --- .../TARGET_MCUXpresso_MCUS/TARGET_MCU_K64F/serial_api.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_MCU_K64F/serial_api.c b/targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_MCU_K64F/serial_api.c index 3f664e92ebd..ebc6024474c 100644 --- a/targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_MCU_K64F/serial_api.c +++ b/targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_MCU_K64F/serial_api.c @@ -518,9 +518,10 @@ int serial_tx_asynch(serial_t *obj, const void *tx, size_t tx_length, uint8_t tx } } + obj->serial.txstate = kUART_TxBusy; + /* Start the transfer */ serial_send_asynch(obj); - obj->serial.txstate = kUART_TxBusy; return 0; } @@ -583,9 +584,10 @@ void serial_rx_asynch(serial_t *obj, void *rx, size_t rx_length, uint8_t rx_widt } } + obj->serial.rxstate = kUART_RxBusy; + /* Start the transfer */ serial_receive_asynch(obj); - obj->serial.rxstate = kUART_RxBusy; } uint8_t serial_tx_active(serial_t *obj)