<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>LPC MicrocontrollersのトピックRe: LPC55 UART RX FIFO OVERFLOW</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-UART-RX-FIFO-OVERFLOW/m-p/1493934#M49668</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;For the function calling&lt;/P&gt;
&lt;PRE&gt;USART_RTOS_Receive(&amp;amp;handle, recv_buffer, sizeof(recv_buffer), &amp;amp;n)&lt;/PRE&gt;
&lt;P&gt;The operating system will be blocked at the above function until number of characters predefined by length variables(sizeof(recv_buffer)) has been received.&lt;/P&gt;
&lt;P&gt;I think the system behaves normally, if you send 5 characters for once transfer, after 4 characters have been received, USART_RTOS_Receive() will be unblocked. The remaining one character will be treated as next receiving process.&lt;/P&gt;
&lt;P&gt;BTW, I suppose that you'd better&amp;nbsp; not to change the low level driver of SDK or Freertos as you have done to call&amp;nbsp; the USART_FIFOCFG_EMPTYRX(1);, which will miss the characters.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/*!&lt;BR /&gt;* brief Receives data.&lt;BR /&gt;*&lt;BR /&gt;* This function receives data from USART. It is a synchronous API. If data is immediately available,&lt;BR /&gt;* it is returned immediately and the number of bytes received.&lt;BR /&gt;*&lt;BR /&gt;* param handle The RTOS USART handle.&lt;BR /&gt;* param buffer The pointer to buffer where to write received data.&lt;BR /&gt;* param length The number of bytes to receive.&lt;BR /&gt;* param received The pointer to a variable of size_t where the number of received data is filled.&lt;BR /&gt;*/&lt;BR /&gt;int USART_RTOS_Receive(usart_rtos_handle_t *handle, uint8_t *buffer, uint32_t length, size_t *received)&lt;BR /&gt;{&lt;BR /&gt;EventBits_t ev;&lt;BR /&gt;size_t n = 0;&lt;BR /&gt;int retval = kStatus_Fail;&lt;BR /&gt;size_t local_received = 0;&lt;BR /&gt;status_t status;&lt;/P&gt;
&lt;P&gt;if (NULL == handle-&amp;gt;base)&lt;BR /&gt;{&lt;BR /&gt;/* Invalid handle. */&lt;BR /&gt;return kStatus_Fail;&lt;BR /&gt;}&lt;BR /&gt;if (0U == length)&lt;BR /&gt;{&lt;BR /&gt;if (received != NULL)&lt;BR /&gt;{&lt;BR /&gt;*received = n;&lt;BR /&gt;}&lt;BR /&gt;return kStatus_Success;&lt;BR /&gt;}&lt;BR /&gt;if (NULL == buffer)&lt;BR /&gt;{&lt;BR /&gt;return kStatus_InvalidArgument;&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;/* New transfer can be performed only after current one is finished */&lt;BR /&gt;if (pdFALSE == xSemaphoreTake(handle-&amp;gt;rxSemaphore, portMAX_DELAY))&lt;BR /&gt;{&lt;BR /&gt;/* We could not take the semaphore, exit with 0 data received */&lt;BR /&gt;return kStatus_Fail;&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;handle-&amp;gt;rxTransfer.data = buffer;&lt;BR /&gt;handle-&amp;gt;rxTransfer.dataSize = (uint32_t)length;&lt;/P&gt;
&lt;P&gt;/* Non-blocking call */&lt;BR /&gt;status = USART_TransferReceiveNonBlocking(handle-&amp;gt;base, handle-&amp;gt;t_state, &amp;amp;handle-&amp;gt;rxTransfer, &amp;amp;n);&lt;BR /&gt;if (status != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;(void)xSemaphoreGive(handle-&amp;gt;rxSemaphore);&lt;BR /&gt;return kStatus_Fail;&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;ev = xEventGroupWaitBits(handle-&amp;gt;rxEvent, RTOS_USART_COMPLETE | RTOS_USART_RING_BUFFER_OVERRUN, pdTRUE, pdFALSE,&lt;BR /&gt;portMAX_DELAY);&lt;BR /&gt;if ((ev &amp;amp; RTOS_USART_RING_BUFFER_OVERRUN) != 0U)&lt;BR /&gt;{&lt;BR /&gt;/* Stop data transfer to application buffer, ring buffer is still active */&lt;BR /&gt;USART_TransferAbortReceive(handle-&amp;gt;base, handle-&amp;gt;t_state);&lt;BR /&gt;/* Prevent false indication of successful transfer in next call of USART_RTOS_Receive.&lt;BR /&gt;RTOS_USART_COMPLETE flag could be set meanwhile overrun is handled */&lt;BR /&gt;(void)xEventGroupClearBits(handle-&amp;gt;rxEvent, RTOS_USART_COMPLETE);&lt;BR /&gt;retval = kStatus_USART_RxRingBufferOverrun;&lt;BR /&gt;local_received = 0;&lt;BR /&gt;}&lt;BR /&gt;else if ((ev &amp;amp; RTOS_USART_COMPLETE) != 0U)&lt;BR /&gt;{&lt;BR /&gt;retval = kStatus_Success;&lt;BR /&gt;local_received = length;&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;retval = kStatus_USART_RxError;&lt;BR /&gt;local_received = 0;&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;/* Prevent repetitive NULL check */&lt;BR /&gt;if (received != NULL)&lt;BR /&gt;{&lt;BR /&gt;*received = local_received;&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;/* Enable next transfer. Current one is finished */&lt;BR /&gt;if (pdFALSE == xSemaphoreGive(handle-&amp;gt;rxSemaphore))&lt;BR /&gt;{&lt;BR /&gt;/* We could not post the semaphore, exit with error */&lt;BR /&gt;retval = kStatus_Fail;&lt;BR /&gt;}&lt;BR /&gt;return retval;&lt;BR /&gt;}&lt;/P&gt;</description>
    <pubDate>Fri, 22 Jul 2022 08:58:03 GMT</pubDate>
    <dc:creator>xiangjun_rong</dc:creator>
    <dc:date>2022-07-22T08:58:03Z</dc:date>
    <item>
      <title>LPC55 UART RX FIFO OVERFLOW</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-UART-RX-FIFO-OVERFLOW/m-p/1491708#M49641</link>
      <description>&lt;P&gt;Hi, I am trying to implement an uart protocol which uses dma transfer.&amp;nbsp;&lt;/P&gt;&lt;P&gt;My problem is when the transferred character is more than the defined data size, the excessive character arrived later and remains in the rx fifo. I have tried to flush the fifo by using macro "USART_FIFOCFG_EMPTYRX(1);" but this didn't help.&lt;/P&gt;&lt;P&gt;Similar behaviour can be replicated with the SDK example freertos_usart. The defined data size is 4 characters and if I send "12345", the "5" remains in the fifo and the last character of the next incoming character will get truncated.&lt;/P&gt;&lt;P&gt;Can anyone recommend how this can be address? thanks.&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;#data batch&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="33.333333333333336%"&gt;Tx&lt;/TD&gt;&lt;TD width="33.333333333333336%"&gt;12345&lt;/TD&gt;&lt;TD width="33.333333333333336%"&gt;987&lt;STRONG&gt;6 &amp;lt;- missing&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="33.333333333333336%"&gt;Rx&lt;/TD&gt;&lt;TD width="33.333333333333336%"&gt;1234&lt;/TD&gt;&lt;TD width="33.333333333333336%"&gt;5987&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using LPC55S69 development kit and the SDK version is 2.10.1 and IDE v11.5.0.&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;/*&lt;BR /&gt;* Copyright (c) 2015, Freescale Semiconductor, Inc.&lt;BR /&gt;* Copyright 2016-2017 NXP&lt;BR /&gt;* All rights reserved.&lt;BR /&gt;*&lt;BR /&gt;* SPDX-License-Identifier: BSD-3-Clause&lt;BR /&gt;* The USART example for FreeRTOS demonstrates the possibility to use the USART driver in the RTOS.&lt;BR /&gt;* The example uses single instance of USART IP and writes string into, then reads back chars.&lt;BR /&gt;* After every 4B received, these are sent back on USART.&lt;BR /&gt;*/&lt;BR /&gt;&lt;BR /&gt;/* FreeRTOS kernel includes. */&lt;BR /&gt;#include "FreeRTOS.h"&lt;BR /&gt;#include "task.h"&lt;BR /&gt;#include "queue.h"&lt;BR /&gt;#include "timers.h"&lt;BR /&gt;&lt;BR /&gt;/* Freescale includes. */&lt;BR /&gt;#include "fsl_device_registers.h"&lt;BR /&gt;#include "fsl_debug_console.h"&lt;BR /&gt;#include "pin_mux.h"&lt;BR /&gt;#include "clock_config.h"&lt;BR /&gt;#include "board.h"&lt;BR /&gt;&lt;BR /&gt;#include "fsl_usart_freertos.h"&lt;BR /&gt;#include "fsl_usart.h"&lt;BR /&gt;&lt;BR /&gt;#include "fsl_power.h"&lt;BR /&gt;/*******************************************************************************&lt;BR /&gt;* Definitions&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;#define DEMO_USART USART0&lt;BR /&gt;#define DEMO_USART_CLK_SRC kCLOCK_Flexcomm0&lt;BR /&gt;#define DEMO_USART_CLK_FREQ CLOCK_GetFlexCommClkFreq(0U)&lt;BR /&gt;#define DEMO_USART_IRQHandler FLEXCOMM0_IRQHandler&lt;BR /&gt;#define DEMO_USART_IRQn FLEXCOMM0_IRQn&lt;BR /&gt;/* Task priorities. */&lt;BR /&gt;#define uart_task_PRIORITY (configMAX_PRIORITIES - 1)&lt;BR /&gt;#define USART_NVIC_PRIO 5&lt;BR /&gt;/*******************************************************************************&lt;BR /&gt;* Prototypes&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;static void uart_task(void *pvParameters);&lt;BR /&gt;&lt;BR /&gt;/*******************************************************************************&lt;BR /&gt;* Code&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;char *to_send = "FreeRTOS USART driver example!\r\n";&lt;BR /&gt;char *send_buffer_overrun = "\r\nRing buffer overrun!\r\n";&lt;BR /&gt;uint8_t background_buffer[32];&lt;BR /&gt;uint8_t recv_buffer[4];&lt;BR /&gt;&lt;BR /&gt;usart_rtos_handle_t handle;&lt;BR /&gt;struct _usart_handle t_handle;&lt;BR /&gt;&lt;BR /&gt;struct rtos_usart_config usart_config = {&lt;BR /&gt;  .baudrate = 115200,&lt;BR /&gt;  .parity = kUSART_ParityDisabled,&lt;BR /&gt;  .stopbits = kUSART_OneStopBit,&lt;BR /&gt;  .buffer = background_buffer,&lt;BR /&gt;  .buffer_size = sizeof(background_buffer),&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt;/*!&lt;BR /&gt;* @brief Application entry point.&lt;BR /&gt;*/&lt;BR /&gt;int main(void)&lt;BR /&gt;{&lt;BR /&gt;  /* Init board hardware. */&lt;BR /&gt;  /* set BOD VBAT level to 1.65V */&lt;BR /&gt;  POWER_SetBodVbatLevel(kPOWER_BodVbatLevel1650mv, kPOWER_BodHystLevel50mv, false);&lt;BR /&gt;  /* attach main clock divide to FLEXCOMM0 (debug console) */&lt;BR /&gt;  CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);&lt;BR /&gt;&lt;BR /&gt;  BOARD_InitBootPins();&lt;BR /&gt;  BOARD_InitBootClocks();&lt;BR /&gt;  BOARD_InitDebugConsole();&lt;BR /&gt;&lt;BR /&gt;  if (xTaskCreate(uart_task, "Uart_task", configMINIMAL_STACK_SIZE + 100, NULL, uart_task_PRIORITY, NULL) != pdPASS)&lt;BR /&gt;  {&lt;BR /&gt;    PRINTF("Task creation failed!.\r\n");&lt;BR /&gt;    while (1)&lt;BR /&gt;    ;&lt;BR /&gt;  }&lt;BR /&gt;  vTaskStartScheduler();&lt;BR /&gt;  for (;;)&lt;BR /&gt;  ;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;/*!&lt;BR /&gt;* @brief Task responsible for loopback.&lt;BR /&gt;*/&lt;BR /&gt;static void uart_task(void *pvParameters)&lt;BR /&gt;{&lt;BR /&gt;  int error;&lt;BR /&gt;  size_t n = 0;&lt;BR /&gt;  usart_config.srcclk = BOARD_DEBUG_UART_CLK_FREQ;&lt;BR /&gt;  usart_config.base = DEMO_USART;&lt;BR /&gt;&lt;BR /&gt;  NVIC_SetPriority(DEMO_USART_IRQn, USART_NVIC_PRIO);&lt;BR /&gt;&lt;BR /&gt;  if (kStatus_Success != USART_RTOS_Init(&amp;amp;handle, &amp;amp;t_handle, &amp;amp;usart_config))&lt;BR /&gt;  {&lt;BR /&gt;    vTaskSuspend(NULL);&lt;BR /&gt;  }&lt;BR /&gt;&lt;BR /&gt;  /* Send introduction message. */&lt;BR /&gt;  if (kStatus_Success != USART_RTOS_Send(&amp;amp;handle, (uint8_t *)to_send, strlen(to_send)))&lt;BR /&gt;  {&lt;BR /&gt;    vTaskSuspend(NULL);&lt;BR /&gt;  }&lt;BR /&gt;&lt;BR /&gt;  /* Receive user input and send it back to terminal. */&lt;BR /&gt;  do&lt;BR /&gt;  {&lt;BR /&gt;    error = USART_RTOS_Receive(&amp;amp;handle, recv_buffer, sizeof(recv_buffer), &amp;amp;n);&lt;BR /&gt;&lt;BR /&gt;    if (error == kStatus_USART_RxRingBufferOverrun)&lt;BR /&gt;    {&lt;BR /&gt;      /* Notify about hardware buffer overrun */&lt;BR /&gt;      if (kStatus_Success !=&lt;BR /&gt;          USART_RTOS_Send(&amp;amp;handle, (uint8_t *)send_buffer_overrun, strlen(send_buffer_overrun)))&lt;BR /&gt;      {&lt;BR /&gt;         vTaskSuspend(NULL);&lt;BR /&gt;      }&lt;BR /&gt;    }&lt;BR /&gt;    if (n &amp;gt; 0)&lt;BR /&gt;    {&lt;BR /&gt;      /* send back the received data */&lt;BR /&gt;      USART_RTOS_Send(&amp;amp;handle, recv_buffer, n);&lt;BR /&gt;    }&lt;BR /&gt;  } while (kStatus_Success == error);&lt;BR /&gt;&lt;BR /&gt;  USART_RTOS_Deinit(&amp;amp;handle);&lt;BR /&gt;  vTaskSuspend(NULL);&lt;BR /&gt;}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 19 Jul 2022 10:24:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-UART-RX-FIFO-OVERFLOW/m-p/1491708#M49641</guid>
      <dc:creator>SiuHo1</dc:creator>
      <dc:date>2022-07-19T10:24:02Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55 UART RX FIFO OVERFLOW</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-UART-RX-FIFO-OVERFLOW/m-p/1493934#M49668</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;For the function calling&lt;/P&gt;
&lt;PRE&gt;USART_RTOS_Receive(&amp;amp;handle, recv_buffer, sizeof(recv_buffer), &amp;amp;n)&lt;/PRE&gt;
&lt;P&gt;The operating system will be blocked at the above function until number of characters predefined by length variables(sizeof(recv_buffer)) has been received.&lt;/P&gt;
&lt;P&gt;I think the system behaves normally, if you send 5 characters for once transfer, after 4 characters have been received, USART_RTOS_Receive() will be unblocked. The remaining one character will be treated as next receiving process.&lt;/P&gt;
&lt;P&gt;BTW, I suppose that you'd better&amp;nbsp; not to change the low level driver of SDK or Freertos as you have done to call&amp;nbsp; the USART_FIFOCFG_EMPTYRX(1);, which will miss the characters.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/*!&lt;BR /&gt;* brief Receives data.&lt;BR /&gt;*&lt;BR /&gt;* This function receives data from USART. It is a synchronous API. If data is immediately available,&lt;BR /&gt;* it is returned immediately and the number of bytes received.&lt;BR /&gt;*&lt;BR /&gt;* param handle The RTOS USART handle.&lt;BR /&gt;* param buffer The pointer to buffer where to write received data.&lt;BR /&gt;* param length The number of bytes to receive.&lt;BR /&gt;* param received The pointer to a variable of size_t where the number of received data is filled.&lt;BR /&gt;*/&lt;BR /&gt;int USART_RTOS_Receive(usart_rtos_handle_t *handle, uint8_t *buffer, uint32_t length, size_t *received)&lt;BR /&gt;{&lt;BR /&gt;EventBits_t ev;&lt;BR /&gt;size_t n = 0;&lt;BR /&gt;int retval = kStatus_Fail;&lt;BR /&gt;size_t local_received = 0;&lt;BR /&gt;status_t status;&lt;/P&gt;
&lt;P&gt;if (NULL == handle-&amp;gt;base)&lt;BR /&gt;{&lt;BR /&gt;/* Invalid handle. */&lt;BR /&gt;return kStatus_Fail;&lt;BR /&gt;}&lt;BR /&gt;if (0U == length)&lt;BR /&gt;{&lt;BR /&gt;if (received != NULL)&lt;BR /&gt;{&lt;BR /&gt;*received = n;&lt;BR /&gt;}&lt;BR /&gt;return kStatus_Success;&lt;BR /&gt;}&lt;BR /&gt;if (NULL == buffer)&lt;BR /&gt;{&lt;BR /&gt;return kStatus_InvalidArgument;&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;/* New transfer can be performed only after current one is finished */&lt;BR /&gt;if (pdFALSE == xSemaphoreTake(handle-&amp;gt;rxSemaphore, portMAX_DELAY))&lt;BR /&gt;{&lt;BR /&gt;/* We could not take the semaphore, exit with 0 data received */&lt;BR /&gt;return kStatus_Fail;&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;handle-&amp;gt;rxTransfer.data = buffer;&lt;BR /&gt;handle-&amp;gt;rxTransfer.dataSize = (uint32_t)length;&lt;/P&gt;
&lt;P&gt;/* Non-blocking call */&lt;BR /&gt;status = USART_TransferReceiveNonBlocking(handle-&amp;gt;base, handle-&amp;gt;t_state, &amp;amp;handle-&amp;gt;rxTransfer, &amp;amp;n);&lt;BR /&gt;if (status != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;(void)xSemaphoreGive(handle-&amp;gt;rxSemaphore);&lt;BR /&gt;return kStatus_Fail;&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;ev = xEventGroupWaitBits(handle-&amp;gt;rxEvent, RTOS_USART_COMPLETE | RTOS_USART_RING_BUFFER_OVERRUN, pdTRUE, pdFALSE,&lt;BR /&gt;portMAX_DELAY);&lt;BR /&gt;if ((ev &amp;amp; RTOS_USART_RING_BUFFER_OVERRUN) != 0U)&lt;BR /&gt;{&lt;BR /&gt;/* Stop data transfer to application buffer, ring buffer is still active */&lt;BR /&gt;USART_TransferAbortReceive(handle-&amp;gt;base, handle-&amp;gt;t_state);&lt;BR /&gt;/* Prevent false indication of successful transfer in next call of USART_RTOS_Receive.&lt;BR /&gt;RTOS_USART_COMPLETE flag could be set meanwhile overrun is handled */&lt;BR /&gt;(void)xEventGroupClearBits(handle-&amp;gt;rxEvent, RTOS_USART_COMPLETE);&lt;BR /&gt;retval = kStatus_USART_RxRingBufferOverrun;&lt;BR /&gt;local_received = 0;&lt;BR /&gt;}&lt;BR /&gt;else if ((ev &amp;amp; RTOS_USART_COMPLETE) != 0U)&lt;BR /&gt;{&lt;BR /&gt;retval = kStatus_Success;&lt;BR /&gt;local_received = length;&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;retval = kStatus_USART_RxError;&lt;BR /&gt;local_received = 0;&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;/* Prevent repetitive NULL check */&lt;BR /&gt;if (received != NULL)&lt;BR /&gt;{&lt;BR /&gt;*received = local_received;&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;/* Enable next transfer. Current one is finished */&lt;BR /&gt;if (pdFALSE == xSemaphoreGive(handle-&amp;gt;rxSemaphore))&lt;BR /&gt;{&lt;BR /&gt;/* We could not post the semaphore, exit with error */&lt;BR /&gt;retval = kStatus_Fail;&lt;BR /&gt;}&lt;BR /&gt;return retval;&lt;BR /&gt;}&lt;/P&gt;</description>
      <pubDate>Fri, 22 Jul 2022 08:58:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-UART-RX-FIFO-OVERFLOW/m-p/1493934#M49668</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2022-07-22T08:58:03Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55 UART RX FIFO OVERFLOW</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-UART-RX-FIFO-OVERFLOW/m-p/1496311#M49705</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hi XiangJun,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Thanks for point out the expected behaviour. However, I am trying to implement error handling as my program expects incoming command from serial port and it should raise an error if the entered command has the wrong format (wrong command / length of command character is wrong).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please advise how I can clear the rx fifo before the next command comes in as calling &lt;SPAN&gt;USART_FIFOCFG_EMPTYRX(1); doesn't seem to flush anything&lt;/SPAN&gt;? Thanks!&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jul 2022 10:18:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55-UART-RX-FIFO-OVERFLOW/m-p/1496311#M49705</guid>
      <dc:creator>SiuHo1</dc:creator>
      <dc:date>2022-07-27T10:18:35Z</dc:date>
    </item>
  </channel>
</rss>

