<?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 Re: Uart issue in receiving check condition in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Uart-issue-in-receiving-check-condition/m-p/696222#M28040</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ramana,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What code are you using in your interrupt handlers? I would recommend that you use the LPCOpen periph_uart_rb example as reference, this example shows how to use the UART in interrupt mode with transmit and receive ring buffers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Carlos Mendoza&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 12 Oct 2017 14:24:59 GMT</pubDate>
    <dc:creator>Carlos_Mendoza</dc:creator>
    <dc:date>2017-10-12T14:24:59Z</dc:date>
    <item>
      <title>Uart issue in receiving check condition</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Uart-issue-in-receiving-check-condition/m-p/696219#M28037</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Am working on LPC1768 with SIM900A GSM.GPRS module for sending the dynamic data to the server.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Initially am trying to send some AT commands through UART1 and receives back (activated the UART1 interrupt for receiving the response). the response of SIM900 module and display it through UART0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Issue in the code, it perfectly works when i use &lt;EM&gt;&lt;STRONG&gt;while loop&lt;/STRONG&gt;&lt;/EM&gt; to send the buffer of UART1 to UART0. But when i use&lt;EM&gt;&lt;STRONG&gt; if condition&lt;/STRONG&gt;&lt;/EM&gt; it doesn't work as expected.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below code works fine and receive the buffer and send it to UART0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main()&lt;BR /&gt;{&lt;BR /&gt; SystemInit(); //Clock and PLL configuration&lt;/P&gt;&lt;P&gt;/* Initialize All the Four UARTs with different Baud rate */&lt;BR /&gt; UART0_Init(9600); &lt;BR /&gt; NVIC_EnableIRQ(UART0_IRQn);&lt;BR /&gt; LPC_UART0-&amp;gt;IER = IER_RBR | IER_THRE | IER_RLS; /* Enable UART0 interrupt */&lt;/P&gt;&lt;P&gt;UART1_Init(9600); // Intialize uart1&lt;BR /&gt; NVIC_EnableIRQ(UART1_IRQn); &lt;BR /&gt; LPC_UART1-&amp;gt;IER = IER_RBR | IER_THRE | IER_RLS; /* Enable UART1 interrupt */&lt;/P&gt;&lt;P&gt;UART0_TxString("Testing the GPRS\n\r");&lt;BR /&gt; UART1Count=0;&lt;/P&gt;&lt;P&gt;gsm_get_operator(); // Get and show operator&lt;/P&gt;&lt;P&gt;DELAY_ms(500);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; while (1) &lt;BR /&gt; { /* Loop forever */&lt;/P&gt;&lt;P&gt;if( UART1Count != 0 )&lt;BR /&gt; {&lt;BR /&gt; LPC_UART1-&amp;gt;IER = IER_THRE | IER_RLS; /* Disable RBR */&lt;BR /&gt; &lt;BR /&gt; UARTSend( 0, (uint8_t *)UART1Buffer, UART1Count );&lt;BR /&gt; UART1Count = 0;&lt;BR /&gt; LPC_UART1-&amp;gt;IER = IER_THRE | IER_RLS | IER_RBR; /* Re-enable RBR */&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Function that get the preferred operator, and show it on the LCD&lt;BR /&gt;void gsm_get_operator(void)&lt;BR /&gt;{&lt;BR /&gt; UART0_TxString("AT+CPOL?\r\n"); // printing it in terminal&amp;nbsp;&lt;BR /&gt; UART1_TxString("AT+CPOL?\r\n"); &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Same &lt;EM&gt;&lt;STRONG&gt;if condition&amp;nbsp;&lt;/STRONG&gt;&lt;/EM&gt;inside a while loop replaced with function. But it doesn't work so.. &lt;STRONG&gt;See below code.&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;int main()&lt;BR /&gt;{&lt;BR /&gt; SystemInit(); //Clock and PLL configuration&lt;/P&gt;&lt;P&gt;/* Initialize All the Four UARTs with different Baud rate */&lt;BR /&gt; UART0_Init(9600); &lt;BR /&gt; NVIC_EnableIRQ(UART0_IRQn);&lt;BR /&gt; LPC_UART0-&amp;gt;IER = IER_RBR | IER_THRE | IER_RLS; /* Enable UART0 interrupt */&lt;/P&gt;&lt;P&gt;UART1_Init(9600); // Intialize uart1&lt;BR /&gt; NVIC_EnableIRQ(UART1_IRQn); &lt;BR /&gt; LPC_UART1-&amp;gt;IER = IER_RBR | IER_THRE | IER_RLS; /* Enable UART1 interrupt */&lt;/P&gt;&lt;P&gt;UART0_TxString("Testing the GPRS\n\r");&lt;BR /&gt; UART1Count=0;&lt;/P&gt;&lt;P&gt;gsm_get_operator(); // Get and show operator&lt;BR /&gt; &lt;BR /&gt; check_Uart1Receiver(void)&lt;/P&gt;&lt;P&gt;DELAY_ms(500);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; while (1)&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void check_Uart1Receiver(void)&lt;BR /&gt;{&lt;BR /&gt; if( UART1Count != 0 )&lt;BR /&gt; {&lt;BR /&gt; LPC_UART1-&amp;gt;IER = IER_THRE | IER_RLS; /* Disable RBR */&lt;BR /&gt; UARTSend( 0, (uint8_t *)UART1Buffer, UART1Count );&lt;BR /&gt; UART1Count = 0;&lt;BR /&gt; LPC_UART1-&amp;gt;IER = IER_THRE | IER_RLS | IER_RBR; /* Re-enable RBR */&lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;// Function that get the preferred operator, and show it on the LCD&lt;BR /&gt;void gsm_get_operator(void)&lt;BR /&gt;{&lt;BR /&gt; UART0_TxString("AT+CPOL?\r\n");&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;// printing it in terminal&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt; UART1_TxString("AT+CPOL?\r\n"); &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Oct 2017 09:01:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Uart-issue-in-receiving-check-condition/m-p/696219#M28037</guid>
      <dc:creator>ramanamadishett</dc:creator>
      <dc:date>2017-10-02T09:01:37Z</dc:date>
    </item>
    <item>
      <title>Re: Uart issue in receiving check condition</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Uart-issue-in-receiving-check-condition/m-p/696220#M28038</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ramana,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want your application to loop in the check_Uart1Receiver you need to use something like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;main&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;SystemInit&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;//Clock and PLL configuration&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* Initialize All the Four UARTs with different Baud rate */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;UART0_Init&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;9600&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;NVIC_EnableIRQ&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;UART0_IRQn&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPC_UART0&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;IER &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; IER_RBR &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; IER_THRE &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; IER_RLS&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* Enable UART0 interrupt */&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;UART1_Init&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;9600&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;// Intialize uart1&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;NVIC_EnableIRQ&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;UART1_IRQn&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPC_UART1&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;IER &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; IER_RBR &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; IER_THRE &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; IER_RLS&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* Enable UART1 interrupt */&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;UART0_TxString&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"Testing the GPRS\n\r"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UART1Count&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;gsm_get_operator&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;// Get and show operator&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;DELAY_ms&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;500&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="keyword token"&gt;while&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;check_Uart1Receiver&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;


&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Hope it helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;BR /&gt;Carlos Mendoza&lt;BR /&gt;Technical Support Engineer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Oct 2017 21:05:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Uart-issue-in-receiving-check-condition/m-p/696220#M28038</guid>
      <dc:creator>Carlos_Mendoza</dc:creator>
      <dc:date>2017-10-05T21:05:49Z</dc:date>
    </item>
    <item>
      <title>Re: Uart issue in receiving check condition</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Uart-issue-in-receiving-check-condition/m-p/696221#M28039</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for your reply Carlos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't want to loop. Just i have to check the response of GSM module through uart0 receiver buffer and send tp back to uart1. I mean, want to execute only once for each AT command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Oct 2017 13:13:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Uart-issue-in-receiving-check-condition/m-p/696221#M28039</guid>
      <dc:creator>ramanamadishett</dc:creator>
      <dc:date>2017-10-06T13:13:00Z</dc:date>
    </item>
    <item>
      <title>Re: Uart issue in receiving check condition</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Uart-issue-in-receiving-check-condition/m-p/696222#M28040</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ramana,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What code are you using in your interrupt handlers? I would recommend that you use the LPCOpen periph_uart_rb example as reference, this example shows how to use the UART in interrupt mode with transmit and receive ring buffers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Carlos Mendoza&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Oct 2017 14:24:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Uart-issue-in-receiving-check-condition/m-p/696222#M28040</guid>
      <dc:creator>Carlos_Mendoza</dc:creator>
      <dc:date>2017-10-12T14:24:59Z</dc:date>
    </item>
  </channel>
</rss>

