<?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のトピックReceiving Moren Than 16 Data via USART</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Receiving-Moren-Than-16-Data-via-USART/m-p/1071532#M41323</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using LPC54608J512BD208. I have a custom desktop application sends me data through USART. Some packets sends to MCU are greater than 16 datas and I can see just first 16 datas, others are empty. I used logic analyzer and I see that PC application is sending all bytes. The issue is on MCU side. I can't configure PC app to send me less than 16 datas so I have to do something with LPC546. What should I do ? I checked FIFOSTAT, it is&amp;nbsp;1000f2. So that means RX FIFO is full. How can I emtpy it and then receive other datas ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void InitializeUart(void)&lt;BR /&gt;{&lt;BR /&gt; usart_config_t config;&lt;BR /&gt; USART_GetDefaultConfig(&amp;amp;config);&lt;BR /&gt; config.baudRate_Bps = 9600;&lt;BR /&gt; config.enableRx = true;&lt;BR /&gt; config.enableTx = true;&lt;BR /&gt; IOCON-&amp;gt;PIO[3][16] = 0x0301;&lt;BR /&gt; IOCON-&amp;gt;PIO[3][17] = 0x0301;&lt;BR /&gt; CLOCK_AttachClk(kFRO12M_to_FLEXCOMM8);&lt;BR /&gt; USART_Init(USART8, &amp;amp;config, CLOCK_GetFreq(kCLOCK_Flexcomm8));&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is my reading data routine:&lt;/P&gt;&lt;P&gt;void USART_Read(USART_Type *base, uint16_t *data, size_t length)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;for (; length &amp;gt; 0; length--)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*data = base-&amp;gt;FIFORD;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data++;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried something like this but nothing changed:&lt;/P&gt;&lt;P&gt;void USART_ReadBlocking(USART_Type *base, uint16_t *data, size_t length)&lt;BR /&gt;{&lt;BR /&gt; int i = 0;&lt;BR /&gt; for (i = 0; i &amp;lt; 16; i++)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;*data = base-&amp;gt;FIFORD;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;data++;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; base-&amp;gt;FIFOCFG |= USART_FIFOCFG_EMPTYRX_MASK;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; for (i = 0; i &amp;lt; 16; i++)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;*data = base-&amp;gt;FIFORD;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;data++;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 27 Aug 2020 11:38:28 GMT</pubDate>
    <dc:creator>fatihozen</dc:creator>
    <dc:date>2020-08-27T11:38:28Z</dc:date>
    <item>
      <title>Receiving Moren Than 16 Data via USART</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Receiving-Moren-Than-16-Data-via-USART/m-p/1071532#M41323</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using LPC54608J512BD208. I have a custom desktop application sends me data through USART. Some packets sends to MCU are greater than 16 datas and I can see just first 16 datas, others are empty. I used logic analyzer and I see that PC application is sending all bytes. The issue is on MCU side. I can't configure PC app to send me less than 16 datas so I have to do something with LPC546. What should I do ? I checked FIFOSTAT, it is&amp;nbsp;1000f2. So that means RX FIFO is full. How can I emtpy it and then receive other datas ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void InitializeUart(void)&lt;BR /&gt;{&lt;BR /&gt; usart_config_t config;&lt;BR /&gt; USART_GetDefaultConfig(&amp;amp;config);&lt;BR /&gt; config.baudRate_Bps = 9600;&lt;BR /&gt; config.enableRx = true;&lt;BR /&gt; config.enableTx = true;&lt;BR /&gt; IOCON-&amp;gt;PIO[3][16] = 0x0301;&lt;BR /&gt; IOCON-&amp;gt;PIO[3][17] = 0x0301;&lt;BR /&gt; CLOCK_AttachClk(kFRO12M_to_FLEXCOMM8);&lt;BR /&gt; USART_Init(USART8, &amp;amp;config, CLOCK_GetFreq(kCLOCK_Flexcomm8));&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is my reading data routine:&lt;/P&gt;&lt;P&gt;void USART_Read(USART_Type *base, uint16_t *data, size_t length)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;for (; length &amp;gt; 0; length--)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*data = base-&amp;gt;FIFORD;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data++;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried something like this but nothing changed:&lt;/P&gt;&lt;P&gt;void USART_ReadBlocking(USART_Type *base, uint16_t *data, size_t length)&lt;BR /&gt;{&lt;BR /&gt; int i = 0;&lt;BR /&gt; for (i = 0; i &amp;lt; 16; i++)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;*data = base-&amp;gt;FIFORD;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;data++;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; base-&amp;gt;FIFOCFG |= USART_FIFOCFG_EMPTYRX_MASK;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; for (i = 0; i &amp;lt; 16; i++)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;*data = base-&amp;gt;FIFORD;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;data++;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Aug 2020 11:38:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Receiving-Moren-Than-16-Data-via-USART/m-p/1071532#M41323</guid>
      <dc:creator>fatihozen</dc:creator>
      <dc:date>2020-08-27T11:38:28Z</dc:date>
    </item>
    <item>
      <title>Re: Receiving Moren Than 16 Data via USART</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Receiving-Moren-Than-16-Data-via-USART/m-p/1134446#M42132</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I highly recommend you to refer to our SDK examples. In our USART examples there is implementation of clearing FIFO in case RX FIFO error occurred in &lt;STRONG&gt;USART_ReadBlocking&lt;/STRONG&gt;.&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;        /* check rxFIFO statusFlag */
        if ((base-&amp;gt;FIFOSTAT &amp;amp; USART_FIFOSTAT_RXERR_MASK) != 0U)
        {
            base-&amp;gt;FIFOCFG |= USART_FIFOCFG_EMPTYRX_MASK;
            base-&amp;gt;FIFOSTAT |= USART_FIFOSTAT_RXERR_MASK;
            status = kStatus_USART_RxError;
            break;
        }&lt;/LI-CODE&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Felipe&lt;/P&gt;</description>
      <pubDate>Wed, 02 Sep 2020 16:32:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Receiving-Moren-Than-16-Data-via-USART/m-p/1134446#M42132</guid>
      <dc:creator>FelipeGarcia</dc:creator>
      <dc:date>2020-09-02T16:32:32Z</dc:date>
    </item>
  </channel>
</rss>

