<?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>topic A UART receive is truncated in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/A-UART-receive-is-truncated/m-p/1509942#M63869</link>
    <description>&lt;P&gt;&amp;nbsp;I work with MKV58F24. When I send a buffer from PC - 128 bytes - I get only 9 on a micro controller side.&lt;/P&gt;&lt;P&gt;I tried a polling method&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;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;void UART_RecvPacket()
{
	unsigned char chr;

	/* If new data arrived. */
	if ((kUART_RxDataRegFullFlag | kUART_RxOverrunFlag) &amp;amp; UART_GetStatusFlags(UART0))
	{
		chr = UART0-&amp;gt;D;
		rx_idx++;
		printf("IDX = %d\n", (int)rx_idx);
	}
}&lt;/LI-CODE&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As well as an interrupt method&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;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;void UART0_RX_TX_IRQHandler(void)
{
unsigned char chr;

	/* If new data arrived. */
	if ((kUART_RxDataRegFullFlag | kUART_RxOverrunFlag) &amp;amp; UART_GetStatusFlags(UART0))
	{
		chr = UART0-&amp;gt;D;
		rx_idx++;
		printf("IDX = %d\n", (int)rx_idx);
	}
}&lt;/LI-CODE&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The same result - only 9 bytes from 128 are received.&lt;/P&gt;&lt;P&gt;After receiving 9 bytes a status register does not indicates any problem&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="uart_sr.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/190963iA31BA7DA5A98C075/image-size/medium?v=v2&amp;amp;px=400" role="button" title="uart_sr.png" alt="uart_sr.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Set lower baud rate - 9600 (was 115200) - getting a bit more - 17 bytes.&lt;/P&gt;&lt;P&gt;What can be a problem?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;OMG. I found the problem - for a debug purpose I used &lt;STRONG&gt;printf&lt;/STRONG&gt; a lot in the code. It really slows down and stucks the program flow.&lt;/P&gt;</description>
    <pubDate>Wed, 24 Aug 2022 08:17:13 GMT</pubDate>
    <dc:creator>john71</dc:creator>
    <dc:date>2022-08-24T08:17:13Z</dc:date>
    <item>
      <title>A UART receive is truncated</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/A-UART-receive-is-truncated/m-p/1509942#M63869</link>
      <description>&lt;P&gt;&amp;nbsp;I work with MKV58F24. When I send a buffer from PC - 128 bytes - I get only 9 on a micro controller side.&lt;/P&gt;&lt;P&gt;I tried a polling method&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;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;void UART_RecvPacket()
{
	unsigned char chr;

	/* If new data arrived. */
	if ((kUART_RxDataRegFullFlag | kUART_RxOverrunFlag) &amp;amp; UART_GetStatusFlags(UART0))
	{
		chr = UART0-&amp;gt;D;
		rx_idx++;
		printf("IDX = %d\n", (int)rx_idx);
	}
}&lt;/LI-CODE&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As well as an interrupt method&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;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;void UART0_RX_TX_IRQHandler(void)
{
unsigned char chr;

	/* If new data arrived. */
	if ((kUART_RxDataRegFullFlag | kUART_RxOverrunFlag) &amp;amp; UART_GetStatusFlags(UART0))
	{
		chr = UART0-&amp;gt;D;
		rx_idx++;
		printf("IDX = %d\n", (int)rx_idx);
	}
}&lt;/LI-CODE&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The same result - only 9 bytes from 128 are received.&lt;/P&gt;&lt;P&gt;After receiving 9 bytes a status register does not indicates any problem&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="uart_sr.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/190963iA31BA7DA5A98C075/image-size/medium?v=v2&amp;amp;px=400" role="button" title="uart_sr.png" alt="uart_sr.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Set lower baud rate - 9600 (was 115200) - getting a bit more - 17 bytes.&lt;/P&gt;&lt;P&gt;What can be a problem?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;OMG. I found the problem - for a debug purpose I used &lt;STRONG&gt;printf&lt;/STRONG&gt; a lot in the code. It really slows down and stucks the program flow.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Aug 2022 08:17:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/A-UART-receive-is-truncated/m-p/1509942#M63869</guid>
      <dc:creator>john71</dc:creator>
      <dc:date>2022-08-24T08:17:13Z</dc:date>
    </item>
    <item>
      <title>Re: A UART receive is truncated</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/A-UART-receive-is-truncated/m-p/1510162#M63870</link>
      <description>&lt;P&gt;Hi&amp;nbsp;john71,&lt;/P&gt;
&lt;P&gt;Looks like you've found the root cause.&lt;BR /&gt;Thanks for sharing.&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;BR /&gt;Robin&lt;/P&gt;</description>
      <pubDate>Tue, 23 Aug 2022 11:49:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/A-UART-receive-is-truncated/m-p/1510162#M63870</guid>
      <dc:creator>Robin_Shen</dc:creator>
      <dc:date>2022-08-23T11:49:47Z</dc:date>
    </item>
  </channel>
</rss>

