Skip to content

Commit eaace29

Browse files
committed
MCUXpresso: Provide an API to wait till TX complete
Wait till the data is flushed out of TX buffer Signed-off-by: Mahesh Mahadevan <[email protected]>
1 parent 75608f6 commit eaace29

File tree

11 files changed

+110
-0
lines changed

11 files changed

+110
-0
lines changed

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_K66F/serial_api.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,4 +340,14 @@ const PinMap *serial_rts_pinmap()
340340
return PinMap_UART_RTS;
341341
}
342342

343+
void serial_wait_tx_complete(uint32_t uart_index)
344+
{
345+
UART_Type *base = uart_addrs[uart_index];
346+
347+
/* Wait till data is flushed out of transmit buffer */
348+
while (!(kUART_TransmissionCompleteFlag & UART_GetStatusFlags((UART_Type *)base)))
349+
{
350+
}
351+
}
352+
343353
#endif

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_K82F/serial_api.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,4 +332,14 @@ const PinMap *serial_rts_pinmap()
332332
return PinMap_UART_RTS;
333333
}
334334

335+
void serial_wait_tx_complete(uint32_t uart_index)
336+
{
337+
LPUART_Type *base = uart_addrs[uart_index];
338+
339+
/* Wait till data is flushed out of transmit buffer */
340+
while (!(kLPUART_TransmissionCompleteFlag & LPUART_GetStatusFlags((LPUART_Type *)base)))
341+
{
342+
}
343+
}
344+
335345
#endif

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_KL27Z/serial_api.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,4 +288,14 @@ const PinMap *serial_rts_pinmap()
288288
return PinMap_UART_RTS;
289289
}
290290

291+
void serial_wait_tx_complete(uint32_t uart_index)
292+
{
293+
LPUART_Type *base = uart_addrs[uart_index];
294+
295+
/* Wait till data is flushed out of transmit buffer */
296+
while (!(kLPUART_TransmissionCompleteFlag & LPUART_GetStatusFlags((LPUART_Type *)base)))
297+
{
298+
}
299+
}
300+
291301
#endif

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_KL43Z/serial_api.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,4 +300,14 @@ const PinMap *serial_rts_pinmap()
300300
return PinMap_UART_RTS;
301301
}
302302

303+
void serial_wait_tx_complete(uint32_t uart_index)
304+
{
305+
LPUART_Type *base = uart_addrs[uart_index];
306+
307+
/* Wait till data is flushed out of transmit buffer */
308+
while (!(kLPUART_TransmissionCompleteFlag & LPUART_GetStatusFlags((LPUART_Type *)base)))
309+
{
310+
}
311+
}
312+
303313
#endif

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_KL82Z/serial_api.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,4 +328,14 @@ const PinMap *serial_rts_pinmap()
328328
return PinMap_UART_RTS;
329329
}
330330

331+
void serial_wait_tx_complete(uint32_t uart_index)
332+
{
333+
LPUART_Type *base = uart_addrs[uart_index];
334+
335+
/* Wait till data is flushed out of transmit buffer */
336+
while (!(kLPUART_TransmissionCompleteFlag & LPUART_GetStatusFlags((LPUART_Type *)base)))
337+
{
338+
}
339+
}
340+
331341
#endif

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_KW24D/serial_api.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,4 +327,14 @@ void serial_set_flow_control(serial_t *obj, FlowControl type, PinName rxflow, Pi
327327

328328
#endif
329329

330+
void serial_wait_tx_complete(uint32_t uart_index)
331+
{
332+
UART_Type *base = uart_addrs[uart_index];
333+
334+
/* Wait till data is flushed out of transmit buffer */
335+
while (!(kUART_TransmissionCompleteFlag & UART_GetStatusFlags((UART_Type *)base)))
336+
{
337+
}
338+
}
339+
330340
#endif

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_KW41Z/serial_api.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,4 +282,14 @@ const PinMap *serial_rts_pinmap()
282282
return PinMap_UART_RTS;
283283
}
284284

285+
void serial_wait_tx_complete(uint32_t uart_index)
286+
{
287+
LPUART_Type *base = uart_addrs[uart_index];
288+
289+
/* Wait till data is flushed out of transmit buffer */
290+
while (!(kLPUART_TransmissionCompleteFlag & LPUART_GetStatusFlags((LPUART_Type *)base)))
291+
{
292+
}
293+
}
294+
285295
#endif

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_MCU_K22F/serial_api.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,4 +302,14 @@ const PinMap *serial_rts_pinmap()
302302
return PinMap_UART_RTS;
303303
}
304304

305+
void serial_wait_tx_complete(uint32_t uart_index)
306+
{
307+
UART_Type *base = uart_addrs[uart_index];
308+
309+
/* Wait till data is flushed out of transmit buffer */
310+
while (!(kUART_TransmissionCompleteFlag & UART_GetStatusFlags((UART_Type *)base)))
311+
{
312+
}
313+
}
314+
305315
#endif

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_MCU_K24F/serial_api.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -723,4 +723,14 @@ void serial_rx_abort_asynch(serial_t *obj)
723723
}
724724
}
725725

726+
void serial_wait_tx_complete(uint32_t uart_index)
727+
{
728+
UART_Type *base = uart_addrs[uart_index];
729+
730+
/* Wait till data is flushed out of transmit buffer */
731+
while (!(kUART_TransmissionCompleteFlag & UART_GetStatusFlags((UART_Type *)base)))
732+
{
733+
}
734+
}
735+
726736
#endif

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_MCU_K64F/serial_api.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,4 +731,14 @@ void serial_rx_abort_asynch(serial_t *obj)
731731
}
732732
}
733733

734+
void serial_wait_tx_complete(uint32_t uart_index)
735+
{
736+
UART_Type *base = uart_addrs[uart_index];
737+
738+
/* Wait till data is flushed out of transmit buffer */
739+
while (!(kUART_TransmissionCompleteFlag & UART_GetStatusFlags((UART_Type *)base)))
740+
{
741+
}
742+
}
743+
734744
#endif

0 commit comments

Comments
 (0)