<?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 How to config k64 uart_interrupt？ in Kinetis Software Development Kit</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/How-to-config-k64-uart-interrupt/m-p/645445#M6945</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Now I want to send and recieve vary date in uart4.&lt;/P&gt;&lt;P&gt;for example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;I recieve&amp;nbsp;8 byte date through uart4; I want to send&amp;nbsp;&lt;SPAN&gt;demoRingBuffer[0] only one time.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;how to chang it?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;My configrations:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;while (1)&lt;BR /&gt; { &lt;BR /&gt; /* Send data only when UART TX register is empty and ring buffer has data to send out. */&lt;BR /&gt; &lt;BR /&gt; uint8_t aa;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// PRINTF("\r\n start \r\n");&lt;BR /&gt; while ((kUART_TxDataRegEmptyFlag &amp;amp; UART_GetStatusFlags(DEMO_UART)) &amp;amp;&amp;amp; (rxIndex != txIndex))&lt;BR /&gt; {&lt;BR /&gt; &lt;BR /&gt; UART_WriteByte(DEMO_UART, demoRingBuffer[txIndex]);&lt;BR /&gt; txIndex++;&lt;BR /&gt; &lt;BR /&gt; txIndex %= DEMO_RING_BUFFER_SIZE;&lt;BR /&gt; &lt;BR /&gt; } &lt;BR /&gt; if(demoRingBuffer[0]==0x23&amp;amp;demoRingBuffer[1]==0x41&amp;amp;demoRingBuffer[2]==0x55&amp;amp;demoRingBuffer[3]==0x66&lt;BR /&gt; &amp;amp;demoRingBuffer[4]==0x77&amp;amp;demoRingBuffer[5]==0x88&amp;amp;demoRingBuffer[6]==0x99&amp;amp;demoRingBuffer[7]==0xaa)&lt;BR /&gt; {&lt;BR /&gt; aa=0x01;&lt;BR /&gt; } &lt;BR /&gt; else&lt;BR /&gt; { &lt;BR /&gt; aa=0x02;&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; if((aa==0x01))&lt;BR /&gt; {&lt;BR /&gt; UART_WriteByte(DEMO_UART, demoRingBuffer[0]);&lt;BR /&gt; }&lt;BR /&gt; else &lt;BR /&gt; {&lt;BR /&gt; UART_WriteByte(DEMO_UART, demoRingBuffer[1]);&lt;BR /&gt;}&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void DEMO_UART_IRQHandler(void)&lt;BR /&gt;{&lt;BR /&gt; uint8_t data;&lt;/P&gt;&lt;P&gt;/* If new data arrived. */&lt;BR /&gt; if ((kUART_RxDataRegFullFlag | kUART_RxOverrunFlag) &amp;amp; UART_GetStatusFlags(DEMO_UART))&lt;BR /&gt; {&lt;BR /&gt; data = UART_ReadByte(DEMO_UART);&lt;BR /&gt; &lt;BR /&gt; /* If ring buffer is not full, add data to ring buffer. */&lt;BR /&gt; if (((rxIndex + 1) % DEMO_RING_BUFFER_SIZE) != txIndex)&lt;BR /&gt; {&lt;BR /&gt; demoRingBuffer[rxIndex] = data;&lt;BR /&gt; rxIndex++;&lt;BR /&gt; rxIndex %= DEMO_RING_BUFFER_SIZE;&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;I&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/15027i167992BB51577449/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;It always send 0x23; I want to send only one time.How to chang it?&lt;/P&gt;&lt;P&gt;Thanks and regards&lt;/P&gt;&lt;P&gt;zhai&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 13 Mar 2017 06:47:45 GMT</pubDate>
    <dc:creator>zhailing</dc:creator>
    <dc:date>2017-03-13T06:47:45Z</dc:date>
    <item>
      <title>How to config k64 uart_interrupt？</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/How-to-config-k64-uart-interrupt/m-p/645445#M6945</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Now I want to send and recieve vary date in uart4.&lt;/P&gt;&lt;P&gt;for example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;I recieve&amp;nbsp;8 byte date through uart4; I want to send&amp;nbsp;&lt;SPAN&gt;demoRingBuffer[0] only one time.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;how to chang it?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;My configrations:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;while (1)&lt;BR /&gt; { &lt;BR /&gt; /* Send data only when UART TX register is empty and ring buffer has data to send out. */&lt;BR /&gt; &lt;BR /&gt; uint8_t aa;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// PRINTF("\r\n start \r\n");&lt;BR /&gt; while ((kUART_TxDataRegEmptyFlag &amp;amp; UART_GetStatusFlags(DEMO_UART)) &amp;amp;&amp;amp; (rxIndex != txIndex))&lt;BR /&gt; {&lt;BR /&gt; &lt;BR /&gt; UART_WriteByte(DEMO_UART, demoRingBuffer[txIndex]);&lt;BR /&gt; txIndex++;&lt;BR /&gt; &lt;BR /&gt; txIndex %= DEMO_RING_BUFFER_SIZE;&lt;BR /&gt; &lt;BR /&gt; } &lt;BR /&gt; if(demoRingBuffer[0]==0x23&amp;amp;demoRingBuffer[1]==0x41&amp;amp;demoRingBuffer[2]==0x55&amp;amp;demoRingBuffer[3]==0x66&lt;BR /&gt; &amp;amp;demoRingBuffer[4]==0x77&amp;amp;demoRingBuffer[5]==0x88&amp;amp;demoRingBuffer[6]==0x99&amp;amp;demoRingBuffer[7]==0xaa)&lt;BR /&gt; {&lt;BR /&gt; aa=0x01;&lt;BR /&gt; } &lt;BR /&gt; else&lt;BR /&gt; { &lt;BR /&gt; aa=0x02;&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; if((aa==0x01))&lt;BR /&gt; {&lt;BR /&gt; UART_WriteByte(DEMO_UART, demoRingBuffer[0]);&lt;BR /&gt; }&lt;BR /&gt; else &lt;BR /&gt; {&lt;BR /&gt; UART_WriteByte(DEMO_UART, demoRingBuffer[1]);&lt;BR /&gt;}&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void DEMO_UART_IRQHandler(void)&lt;BR /&gt;{&lt;BR /&gt; uint8_t data;&lt;/P&gt;&lt;P&gt;/* If new data arrived. */&lt;BR /&gt; if ((kUART_RxDataRegFullFlag | kUART_RxOverrunFlag) &amp;amp; UART_GetStatusFlags(DEMO_UART))&lt;BR /&gt; {&lt;BR /&gt; data = UART_ReadByte(DEMO_UART);&lt;BR /&gt; &lt;BR /&gt; /* If ring buffer is not full, add data to ring buffer. */&lt;BR /&gt; if (((rxIndex + 1) % DEMO_RING_BUFFER_SIZE) != txIndex)&lt;BR /&gt; {&lt;BR /&gt; demoRingBuffer[rxIndex] = data;&lt;BR /&gt; rxIndex++;&lt;BR /&gt; rxIndex %= DEMO_RING_BUFFER_SIZE;&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;I&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/15027i167992BB51577449/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;It always send 0x23; I want to send only one time.How to chang it?&lt;/P&gt;&lt;P&gt;Thanks and regards&lt;/P&gt;&lt;P&gt;zhai&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Mar 2017 06:47:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/How-to-config-k64-uart-interrupt/m-p/645445#M6945</guid>
      <dc:creator>zhailing</dc:creator>
      <dc:date>2017-03-13T06:47:45Z</dc:date>
    </item>
    <item>
      <title>Re: How to config k64 uart_interrupt？</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/How-to-config-k64-uart-interrupt/m-p/645446#M6946</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to finish the fuction like mcu51；&lt;/P&gt;&lt;P&gt;void Rcv_ISR () interrupt 4 using 1&lt;BR /&gt;{ &lt;BR /&gt; INT8 data inchar;&lt;BR /&gt; &lt;BR /&gt; if(RI)&lt;BR /&gt; {&lt;BR /&gt; inchar = SBUF;&lt;BR /&gt; if(inchar == '*')&lt;BR /&gt; {&lt;BR /&gt; RX_Index1 = 0;&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; if(RX_Index1 &amp;lt;= (RX_MAXBUF-1) )&lt;BR /&gt; {&lt;BR /&gt; RX_BUF1[RX_Index1] = inchar;&lt;BR /&gt; if(RX_BUF1[RX_Index1] == '$')&lt;BR /&gt; { &lt;BR /&gt; if(RX_BUF1[0] == '*')&lt;BR /&gt; { &lt;BR /&gt; if(RX_BUF1[2] == '2')&lt;BR /&gt; {&lt;BR /&gt; ACKflag = 1;&lt;BR /&gt; }&lt;BR /&gt; else&lt;BR /&gt; {&lt;BR /&gt; if(RX_FULL == 0)&lt;BR /&gt; {&lt;BR /&gt; RX_FULL = 1;&lt;BR /&gt; RX_Index2 = RX_Index1;&lt;BR /&gt; memcpy(RX_BUF2,RX_BUF1,RX_Index2+1); &lt;BR /&gt; }&lt;BR /&gt; else&lt;BR /&gt; {&lt;BR /&gt; //&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; RX_BUF1[0] = 0;&lt;BR /&gt; RX_BUF1[2] = 0;&lt;BR /&gt; RX_Index1 =0;&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; RX_Index1++;&lt;BR /&gt; }&lt;BR /&gt; else&lt;BR /&gt; {&lt;BR /&gt; RX_Index1 =0;&lt;BR /&gt; }&lt;BR /&gt; RI = 0;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;if(TI)&lt;BR /&gt; {&lt;BR /&gt; if(TX_EN == 1)&lt;BR /&gt; {&lt;BR /&gt; if(TX_Tail == TX_Head)&lt;BR /&gt; {&lt;BR /&gt; if(TX_Full == 1)&lt;BR /&gt; {&lt;BR /&gt; SBUF = TX_BUF[TX_Tail];&lt;BR /&gt; TX_Tail = (TX_Tail+1)%TX_MAXBUF;&lt;BR /&gt; TX_Full = 0;&lt;BR /&gt; }&lt;BR /&gt; else&lt;BR /&gt; {&lt;BR /&gt; TX_Empty = 1;&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; else&lt;BR /&gt; {&lt;BR /&gt; SBUF = TX_BUF[TX_Tail];&lt;BR /&gt; TX_Tail = (TX_Tail+1)%TX_MAXBUF;&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; else&lt;BR /&gt; {&lt;BR /&gt; TX_Empty = 1;&lt;BR /&gt; TX_Full = 0;&lt;BR /&gt; }&lt;BR /&gt; TI = 0;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Mar 2017 12:03:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/How-to-config-k64-uart-interrupt/m-p/645446#M6946</guid>
      <dc:creator>zhailing</dc:creator>
      <dc:date>2017-03-13T12:03:01Z</dc:date>
    </item>
    <item>
      <title>Re: How to config k64 uart_interrupt？</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/How-to-config-k64-uart-interrupt/m-p/645447#M6947</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Zhao,&lt;/P&gt;&lt;P&gt;Regarding your code, that you want to output an array only once, you can change code cas follwoing:&lt;/P&gt;&lt;P&gt;while (1)&lt;BR /&gt; { &lt;BR /&gt; /* Send data only when UART TX register is empty and ring buffer has data to send out. */&lt;BR /&gt; &lt;BR /&gt; uint8_t aa;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;// PRINTF("\r\n start \r\n");&lt;BR /&gt; while ((kUART_TxDataRegEmptyFlag &amp;amp; UART_GetStatusFlags(DEMO_UART)) &amp;amp;&amp;amp; (rxIndex != txIndex))&lt;BR /&gt; {&lt;BR /&gt; &lt;BR /&gt; UART_WriteByte(DEMO_UART, demoRingBuffer[txIndex]);&lt;BR /&gt; txIndex++;&lt;BR /&gt; if(txIndex&amp;gt;=THRESHOLD) break; //Rong wrote, the line can jump out the loop while(1)&lt;BR /&gt; //txIndex %= DEMO_RING_BUFFER_SIZE;&lt;BR /&gt; &lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BTW, it seems the code is incorrect:&lt;/P&gt;&lt;P&gt;if(demoRingBuffer[0]==0x23&amp;amp;demoRingBuffer[1]==0x41&amp;amp;demoRingBuffer[2]==0x55&amp;amp;demoRingBuffer[3]==0x66&lt;BR /&gt; &amp;amp;demoRingBuffer[4]==0x77&amp;amp;demoRingBuffer[5]==0x88&amp;amp;demoRingBuffer[6]==0x99&amp;amp;demoRingBuffer[7]==0xaa)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It should be:&lt;/P&gt;&lt;P&gt;if(demoRingBuffer[0]==0x23&amp;amp;&amp;amp;demoRingBuffer[1]==0x41&amp;amp;&amp;amp;demoRingBuffer[2]==0x55&amp;amp;&amp;amp;demoRingBuffer[3]==0x66&lt;BR /&gt; &amp;amp;&amp;amp;demoRingBuffer[4]==0x77&amp;amp;&amp;amp;demoRingBuffer[5]==0x88&amp;amp;&amp;amp;demoRingBuffer[6]==0x99&amp;amp;&amp;amp;demoRingBuffer[7]==0xaa)&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;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Mar 2017 09:00:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/How-to-config-k64-uart-interrupt/m-p/645447#M6947</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2017-03-15T09:00:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to config k64 uart_interrupt？</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/How-to-config-k64-uart-interrupt/m-p/645448#M6948</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&amp;nbsp; I test your code，the rusult is the same to mine； I want to get 8 byte date from the uart rx ;&lt;/P&gt;&lt;P&gt;I will implent &amp;nbsp;other function through &amp;nbsp;the uart command and output command to upper machine.&lt;/P&gt;&lt;P&gt;Actualy I want to use the uart fifo function,But I don't have demo code.&lt;/P&gt;&lt;P&gt;Thanks&amp;nbsp;&lt;/P&gt;&lt;P&gt;zhai&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Mar 2017 05:31:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/How-to-config-k64-uart-interrupt/m-p/645448#M6948</guid>
      <dc:creator>zhailing</dc:creator>
      <dc:date>2017-03-16T05:31:00Z</dc:date>
    </item>
  </channel>
</rss>

