<?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: JN5168 UART vAHI_Uart0RegisterCallback() Using in Wireless MCU</title>
    <link>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704903#M3603</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the same problem as JiWei ,and &lt;STRONG style="background-color: #ffffff; color: #51626f;"&gt;I added&amp;nbsp;UART0 operations in JN-AN-1189-zigbee-HA-demo&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;The UART interrupt (APP_myisrUart(uint32 u32Device, uint32 u32ItemBitmap)) never work，and did not print "isrUart".&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;How to set up to enter the callback function to process the receiving data?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;My UART&amp;nbsp;code as below:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;PUBLIC void UART_vInit(void)&lt;BR /&gt;{&lt;BR /&gt; /* Enable UART 0 */&lt;BR /&gt; //vAHI_UartEnable(UART);&lt;BR /&gt; bAHI_UartEnable(UART, //uint8 u8Uart,&lt;BR /&gt; txbuf, //uint8 *pu8TxBufAd,&lt;BR /&gt; (uint8)16, //uint16 u16TxBufLen,&lt;BR /&gt; rxbuf, //uint8 *pu8RxBufAd,&lt;BR /&gt; (uint8)127); //uint16 u16RxBufLen);&lt;/P&gt;&lt;P&gt;vAHI_UartReset(UART, TRUE, TRUE);&lt;BR /&gt; vAHI_UartReset(UART, FALSE, FALSE);&lt;/P&gt;&lt;P&gt;/* Set the clock divisor register to give required buad, this has to be done&lt;BR /&gt; directly as the normal routines (in ROM) do not support all baud rates */&lt;BR /&gt; UART_vSetBaudRate(UART_BAUD_RATE);&lt;BR /&gt; //DBG_vPrintf(TRACE_START, "I THINK IS OK \n");&lt;BR /&gt; vAHI_UartSetRTSCTS(UART, TRUE);&lt;BR /&gt; vAHI_UartSetControl(UART, FALSE, FALSE, E_AHI_UART_WORD_LEN_8, TRUE, FALSE); /* [I SP001222_P1 279] */&lt;BR /&gt; vAHI_Uart0RegisterCallback(APP_myisrUart);&lt;BR /&gt; vAHI_UartSetInterrupt(UART, TRUE, TRUE, TRUE, TRUE, E_AHI_UART_FIFO_LEVEL_1); // No TX ints!&lt;BR /&gt; DBG_vPrintf(UART_STAR, "I THINK IT IS OK2 \n");&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;PUBLIC void APP_myisrUart(uint32 u32Device, uint32 u32ItemBitmap)&lt;BR /&gt;{&lt;BR /&gt; DBG_vPrintf(UART_STAR, "isrUart\n");&lt;BR /&gt; UART_vTxChar('\n');&lt;BR /&gt; UART_vTxChar('i');&lt;BR /&gt; UART_vTxChar('s');&lt;BR /&gt; UART_vTxChar('r');&lt;BR /&gt; UART_vTxChar('U');&lt;BR /&gt; UART_vTxChar('\n');&lt;BR /&gt; UART_vTxChar('\n');&lt;BR /&gt; unsigned int irq = ((*((volatile uint32 *)(UART_START_ADR + 0x08))) &amp;gt;&amp;gt; 1) &amp;amp; 0x0007;&lt;BR /&gt; // uint8 u8Byte;&lt;BR /&gt; if (irq &amp;amp; E_AHI_UART_INT_RXDATA) {&lt;BR /&gt; uint8 u8Byte = u8AHI_UartReadData(UART);&lt;BR /&gt; DBG_vPrintf(UART_STAR, "RXUart\n");&lt;BR /&gt; // /* if(OS_eGetMessageStatus(&amp;amp;APP_msgSerialRx, &amp;amp;u8Byte) == FALSE)&lt;BR /&gt; // {&lt;BR /&gt; // /* Failed to send the message to queue */&lt;BR /&gt; // }*/&lt;BR /&gt; }&lt;BR /&gt; if (irq &amp;amp; E_AHI_UART_INT_TX) {&lt;/P&gt;&lt;P&gt;//if(OS_eGetMessageStatus(&amp;amp;APP_msgSerialTx, &amp;amp;u8Byte) == TRUE)&lt;BR /&gt; // {&lt;BR /&gt; // vAHI_UartWriteData(UART, u8Byte);&lt;BR /&gt; /* decrement activity counter for dequeued data */&lt;BR /&gt; // } else {&lt;BR /&gt; /* disable tx interrupt as nothing to send */&lt;BR /&gt; // UART_vSetTxInterrupt(FALSE);&lt;BR /&gt; // }&lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&amp;nbsp;&lt;/P&gt;&lt;P&gt;Lucas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 01 Mar 2018 07:19:58 GMT</pubDate>
    <dc:creator>lucasip</dc:creator>
    <dc:date>2018-03-01T07:19:58Z</dc:date>
    <item>
      <title>JN5168 UART vAHI_Uart0RegisterCallback() Using</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704898#M3598</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;SPAN&gt;I added&amp;nbsp;UART0 operations in JN-AN-1229-ZBPro-Application-Template-v1002, but&amp;nbsp;UART0 is always unable to receive data, only send data, the callback function does not seem to work, I do not know where to set the wrong, how to set up to enter the callback function to process the receiving data, thank you!&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;PUBLIC void UART_vInit(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable UART 0 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vAHI_UartEnable(UART);&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vAHI_UartReset(UART, TRUE, TRUE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vAHI_UartReset(UART, FALSE, FALSE);&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the clock divisor register to give required buad, this has to be done&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; directly as the normal routines (in ROM) do not support all baud rates */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_vSetBaudRate(UART_BAUD_RATE);&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vAHI_UartSetRTSCTS(UART, TRUE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vAHI_UartSetControl(UART, FALSE, FALSE, E_AHI_UART_WORD_LEN_8, TRUE, FALSE); /* [I SP001222_P1 279] */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vAHI_UartSetInterrupt(UART, FALSE, FALSE, FALSE, TRUE, E_AHI_UART_FIFO_LEVEL_1);&amp;nbsp;&amp;nbsp;&amp;nbsp; // No TX ints!&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vAHI_Uart0RegisterCallback(APP_isrUart);&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;PUBLIC void APP_isrUart(uint32 u32Device, uint32 u32ItemBitmap)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;DBG_vPrintf(TRACE_UART, "isrUart\n");&lt;BR /&gt;&amp;nbsp;unsigned int irq = ((*((volatile uint32 *)(UART_START_ADR + 0x08))) &amp;gt;&amp;gt; 1) &amp;amp; 0x0007;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8 u8Byte;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (irq &amp;amp; E_AHI_UART_INT_RXDATA) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8 u8Byte = u8AHI_UartReadData(UART);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(ZQ_bQueueSend(&amp;amp;APP_msgSerialRx, &amp;amp;u8Byte) == FALSE)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Failed to send the message to queue */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (irq &amp;amp; E_AHI_UART_INT_TX) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(ZQ_bQueueReceive(&amp;amp;APP_msgSerialTx, &amp;amp;u8Byte) == TRUE)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vAHI_UartWriteData(UART, u8Byte);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* decrement activity counter for dequeued data */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* disable tx interrupt as nothing to send */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_vSetTxInterrupt(FALSE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;PRIVATE void vInitialiseApp(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialise JenOS modules. Initialise Power Manager even on non-sleeping nodes&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * as it allows the device to doze when in the idle task&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PWRM_vInit(E_AHI_SLEEP_OSCON_RAMON);&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp; Initialise the PDM, use an application supplied key (g_sKey),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp; The key value can be set to the desired value here, or the key in eFuse can be used.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp; To use the key stored in eFuse set the pointer to the key to Null, and remove the&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp; key structure here.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;#ifdef PDM_EEPROM&lt;BR /&gt;&amp;nbsp;PDM_eInitialise(63);&lt;BR /&gt;&amp;nbsp;PDM_vRegisterSystemCallback(vPdmEventHandlerCallback);&lt;BR /&gt;#else&lt;BR /&gt;&amp;nbsp;PDM_vInit(7, 1, 64 * 1024 , NULL, NULL, NULL, &amp;amp;g_sKey);&lt;BR /&gt;#endif&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialise Protocol Data Unit Manager */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PDUM_vInit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_vInit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Register callback that provides information about stack errors */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ZPS_vExtendedStatusSetCallback(vfExtendedStatusCallBack);&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* initialise application */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; APP_vInitResources();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; APP_vSetUpHardware();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* initialise application */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; APP_vInitialiseRouter();&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; app_vMainloop();&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;BR /&gt;}&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Oct 2017 08:56:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704898#M3598</guid>
      <dc:creator>jiweigao</dc:creator>
      <dc:date>2017-10-12T08:56:46Z</dc:date>
    </item>
    <item>
      <title>Re: JN5168 UART vAHI_Uart0RegisterCallback() Using</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704899#M3599</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi JiWei,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-cpp line-numbers"&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* Enable UART */&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;vAHI_UartEnable&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;u8Uart&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* Reset UART */&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;vAHI_UartReset&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; TRUE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; TRUE&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;vAHI_UartReset&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FALSE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FALSE&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* Note we've opened the UART */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;asUart&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;bOpened &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; TRUE&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; &lt;SPAN class="comment token"&gt;/* Allow use of RTS/CTS pins with UART if required */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp; &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;vAHI_UartSetRTSCTS&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; asUart&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;bRtsCts&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* Set baud rate */&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;vAHI_UartSetBaudDivisor&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; u16Divisor&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* Set control */&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;vAHI_UartSetControl&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; bEvenParity&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; bEnableParity&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; u8WordLength&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; bOneStopBit&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;asUart&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;u8RxDisable &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; &lt;SPAN class="operator token"&gt;?&lt;/SPAN&gt; TRUE &lt;SPAN class="operator token"&gt;:&lt;/SPAN&gt; FALSE&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* Using RTS/CTS flow control ? */&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="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;asUart&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;bRtsCts&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="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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* Start with RTS on */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;UART_vRts&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;asUart&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;u8RxDisable &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; &lt;SPAN class="operator token"&gt;?&lt;/SPAN&gt; TRUE &lt;SPAN class="operator token"&gt;:&lt;/SPAN&gt; FALSE&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* Is CTS bit set meaning CTS is off ? */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;u8AHI_UartReadModemStatus&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x10&lt;/SPAN&gt;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* Start with transmit disabled */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;asUart&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;u8TxDisable &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; UART_ABLE_UARTIO&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;&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="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="comment token"&gt;/* Not JenOS ? */&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="property macro token"&gt;#if !UART_JENOS&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="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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* Register callback for appropriate UART */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;u8Uart &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; E_AHI_UART_0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;vAHI_Uart0RegisterCallback&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;UART_vInterrupt&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;u8Uart &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; E_AHI_UART_1&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;vAHI_Uart1RegisterCallback&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;UART_vInterrupt&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;&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="property macro token"&gt;#endif&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="comment token"&gt;/* Set UART interrupts */&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;vAHI_UartSetInterrupt&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;u8Uart&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asUart&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;bRtsCts&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;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* ModemStatus */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FALSE&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* RxLineStatus */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRUE&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* TxFifoEmpty */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRUE&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* RxData */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; E_AHI_UART_FIFO_LEVEL_14&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;/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;For a better reference please&amp;nbsp; take a look to the JN-AN-1069&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For the debug purpose, please&lt;/P&gt;&lt;P&gt;Enable this in the&amp;nbsp;makefile:&lt;/P&gt;&lt;UL&gt;&lt;LI data-aria-level="3" data-aria-posinset="3"&gt;TRACE ?=1&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Let me know your findings&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Oct 2017 00:40:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704899#M3599</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2017-10-17T00:40:17Z</dc:date>
    </item>
    <item>
      <title>Re: JN5168 UART vAHI_Uart0RegisterCallback() Using</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704900#M3600</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A _jive_internal="true" data-content-finding="Community" data-userid="280163" data-username="mario_castaneda" href="https://community.nxp.com/people/mario_castaneda"&gt;&lt;SPAN style="color: #0066cc; text-decoration: underline;"&gt;Mario Ignacio Castaneda Lopez&lt;/SPAN&gt;&lt;/A&gt; :&lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;I took a closer look at JN-AN-1069. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;In UART_vInterrupt, if ((u32ItemBitmap &amp;amp; 0xFF) == E_AHI_UART_INT_RXDATA ||(u32ItemBitmap &amp;amp; 0xFF) == E_AHI_UART_INT_TIMEOUT) of the parts added vAHI_UartWriteData(E_AHI_UART_0, 0xFF),&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;But runtime Coordinator does not print out char FF,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Description does not enter UART0 receive interrupt,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Data processing is done through main loop medium&amp;nbsp; CRD_vMain()-&amp;gt;CRD_vMcpsDcfmInd()-&amp;gt;CRD_vIndData()-&amp;gt;WUART_vRx(),&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;is not handled by interruption. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;If it is handled by interrupts, you should see the print character FF.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;PRIVATE void UART_vInterrupt(uint32 u32Device,uint32 u32ItemBitmap)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;uint8 u8ModemStatus;&lt;BR /&gt;&amp;nbsp;uint8 u8RxChar;&lt;BR /&gt;&amp;nbsp;uint8 u8Uart = 0xFF;&lt;BR /&gt;&amp;nbsp;uint8 u8Data;&lt;BR /&gt;&amp;nbsp;bool_t bAdd;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* Which uart ? */&lt;BR /&gt;&amp;nbsp;if (u32Device == E_AHI_DEVICE_UART0) u8Uart = E_AHI_UART_0;&lt;BR /&gt;&amp;nbsp;if (u32Device == E_AHI_DEVICE_UART1) u8Uart = E_AHI_UART_1;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;/* Interrupt is for a valid uart and it is open? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (u8Uart &amp;lt; 2 &amp;amp;&amp;amp; asUart[u8Uart].bOpened)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Ready to transmit ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((u32ItemBitmap &amp;amp; 0xFF) == E_AHI_UART_INT_TX)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* We will service this interrupt but might generate another */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;asUart[u8Uart].bTxInt = FALSE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;/* Modem status changed ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if ((u32ItemBitmap &amp;amp; 0xFF) == E_AHI_UART_INT_MODEM)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Read modem status */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;u8ModemStatus = u8AHI_UartReadModemStatus(u8Uart);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Has CTS changed ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (u8ModemStatus &amp;amp; E_AHI_UART_MS_DCTS)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Controlling flow from application using CTS ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (asUart[u8Uart].bRtsCts == TRUE)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Note current CTS setting (CTS bit set means CTS has cleared) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;asUart[u8Uart].bCts = (u8ModemStatus &amp;amp; 0x10) ? FALSE : TRUE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Enabling transmit ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (asUart[u8Uart].bCts)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UART_bTxEnable(u8Uart, UART_ABLE_UARTIO);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Disabling transmit ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UART_bTxDisable(u8Uart, UART_ABLE_UARTIO);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Data to receive ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((u32ItemBitmap &amp;amp; 0xFF) == E_AHI_UART_INT_RXDATA ||&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(u32ItemBitmap &amp;amp; 0xFF) == E_AHI_UART_INT_TIMEOUT)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;vAHI_UartWriteData(E_AHI_UART_0, 0xFF);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;vAHI_UartWriteData(E_AHI_UART_0, 0xFF);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;vAHI_UartWriteData(E_AHI_UART_0, 0xFF);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* While there is data in the receive fifo */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (u8AHI_UartReadLineStatus(u8Uart) &amp;amp; E_AHI_UART_LS_DR)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Receive character from UART */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;u8RxChar = u8AHI_UartReadData(u8Uart);&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Using XON/XOFF flow control and this is an XON/XOFF character ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (asUart[u8Uart].bXonXoff == TRUE &amp;amp;&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (u8RxChar == CHAR_XON || u8RxChar == CHAR_XOFF))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Enabling transmit ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (u8RxChar == CHAR_XON)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UART_bTxEnable(u8Uart, UART_ABLE_UARTIO);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Disabling transmit ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UART_bTxDisable(u8Uart, UART_ABLE_UARTIO);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Stats ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#if UART_STATS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Increment received character counter */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;asUart[u8Uart].u32Rxed++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#endif&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Add character to receive queue */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bAdd = QUEUE_bPut(asUart[u8Uart].psRxQueue, u8RxChar);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Added ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (bAdd)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Reached a low amount of free space ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (QUEUE_bLowReached(asUart[u8Uart].psRxQueue))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Disable receive there is now room in the queue */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UART_bRxDisable(u8Uart, UART_ABLE_UARTIO);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Ready to transmit ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((u32ItemBitmap &amp;amp; 0xFF) == E_AHI_UART_INT_TX)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Did we not service the last tx interrupt ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (asUart[u8Uart].bTxInt == FALSE)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Allowed to transmit ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(asUart[u8Uart].u8TxDisable == 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Got some data in the queue ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(! QUEUE_bEmpty_Int(asUart[u8Uart].psTxQueue))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//if(asUart[u8Uart].psTxQueue-&amp;gt;u16Tail != asUart[u8Uart].psTxQueue-&amp;gt;u16Head)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint8 u8Write;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bool_t bGet = TRUE;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Write up to 16 bytes of data to fifo */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (u8Write = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8Write &amp;lt; 16 &amp;amp;&amp;amp; bGet == TRUE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8Write++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Attempt to get byte from queue */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bGet = QUEUE_bGet(asUart[u8Uart].psTxQueue, &amp;amp;u8Data);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Got a byte ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (bGet == TRUE)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Output to UART */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vAHI_UartWriteData(u8Uart, u8Data);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Note we serviced the interrupt, tx interrupts will continue */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;asUart[u8Uart].bTxInt = TRUE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Stats ? */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#if UART_STATS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Increment transmitted character counter */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;asUart[u8Uart].u32Txed++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#endif&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Oct 2017 11:37:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704900#M3600</guid>
      <dc:creator>jiweigao</dc:creator>
      <dc:date>2017-10-18T11:37:39Z</dc:date>
    </item>
    <item>
      <title>Re: JN5168 UART vAHI_Uart0RegisterCallback() Using</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704901#M3601</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;SPAN&gt;I tried to add the print character FF to the receive portion of the Coordianrot UART interrupt in the routine jn-an-1069, but the Coordiantor and Enddevice were able to communicate normally, but the coordiantor terminals did not see the printable FF characters , after a careful look at the routine, it is found that the data processing is handled through function calls in the main loop, and is not handled through the UART interrupt!&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Oct 2017 11:59:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704901#M3601</guid>
      <dc:creator>jiweigao</dc:creator>
      <dc:date>2017-10-18T11:59:02Z</dc:date>
    </item>
    <item>
      <title>Re: JN5168 UART vAHI_Uart0RegisterCallback() Using</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704902#M3602</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi JiWei Gao,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is my UART interrupt configuration.&lt;/P&gt;&lt;PRE class="line-numbers language-csharp"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/* Set UART interrupts */&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;vAHI_UartSetInterrupt&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;u8Uart&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;&amp;nbsp; asUart&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;u8Uart&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;bRtsCts&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* ModemStatus */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRUE&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* RxLineStatus */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRUE&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* TxFifoEmpty */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRUE&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* RxData */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; E_AHI_UART_FIFO_LEVEL_1&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;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Could you please try with another value? a Printable character.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;vAHI_UartWriteData(E_AHI_UART_0, 0x31);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me know your findings.&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Oct 2017 17:03:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704902#M3602</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2017-10-25T17:03:25Z</dc:date>
    </item>
    <item>
      <title>Re: JN5168 UART vAHI_Uart0RegisterCallback() Using</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704903#M3603</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the same problem as JiWei ,and &lt;STRONG style="background-color: #ffffff; color: #51626f;"&gt;I added&amp;nbsp;UART0 operations in JN-AN-1189-zigbee-HA-demo&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;The UART interrupt (APP_myisrUart(uint32 u32Device, uint32 u32ItemBitmap)) never work，and did not print "isrUart".&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;How to set up to enter the callback function to process the receiving data?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;My UART&amp;nbsp;code as below:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;PUBLIC void UART_vInit(void)&lt;BR /&gt;{&lt;BR /&gt; /* Enable UART 0 */&lt;BR /&gt; //vAHI_UartEnable(UART);&lt;BR /&gt; bAHI_UartEnable(UART, //uint8 u8Uart,&lt;BR /&gt; txbuf, //uint8 *pu8TxBufAd,&lt;BR /&gt; (uint8)16, //uint16 u16TxBufLen,&lt;BR /&gt; rxbuf, //uint8 *pu8RxBufAd,&lt;BR /&gt; (uint8)127); //uint16 u16RxBufLen);&lt;/P&gt;&lt;P&gt;vAHI_UartReset(UART, TRUE, TRUE);&lt;BR /&gt; vAHI_UartReset(UART, FALSE, FALSE);&lt;/P&gt;&lt;P&gt;/* Set the clock divisor register to give required buad, this has to be done&lt;BR /&gt; directly as the normal routines (in ROM) do not support all baud rates */&lt;BR /&gt; UART_vSetBaudRate(UART_BAUD_RATE);&lt;BR /&gt; //DBG_vPrintf(TRACE_START, "I THINK IS OK \n");&lt;BR /&gt; vAHI_UartSetRTSCTS(UART, TRUE);&lt;BR /&gt; vAHI_UartSetControl(UART, FALSE, FALSE, E_AHI_UART_WORD_LEN_8, TRUE, FALSE); /* [I SP001222_P1 279] */&lt;BR /&gt; vAHI_Uart0RegisterCallback(APP_myisrUart);&lt;BR /&gt; vAHI_UartSetInterrupt(UART, TRUE, TRUE, TRUE, TRUE, E_AHI_UART_FIFO_LEVEL_1); // No TX ints!&lt;BR /&gt; DBG_vPrintf(UART_STAR, "I THINK IT IS OK2 \n");&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;PUBLIC void APP_myisrUart(uint32 u32Device, uint32 u32ItemBitmap)&lt;BR /&gt;{&lt;BR /&gt; DBG_vPrintf(UART_STAR, "isrUart\n");&lt;BR /&gt; UART_vTxChar('\n');&lt;BR /&gt; UART_vTxChar('i');&lt;BR /&gt; UART_vTxChar('s');&lt;BR /&gt; UART_vTxChar('r');&lt;BR /&gt; UART_vTxChar('U');&lt;BR /&gt; UART_vTxChar('\n');&lt;BR /&gt; UART_vTxChar('\n');&lt;BR /&gt; unsigned int irq = ((*((volatile uint32 *)(UART_START_ADR + 0x08))) &amp;gt;&amp;gt; 1) &amp;amp; 0x0007;&lt;BR /&gt; // uint8 u8Byte;&lt;BR /&gt; if (irq &amp;amp; E_AHI_UART_INT_RXDATA) {&lt;BR /&gt; uint8 u8Byte = u8AHI_UartReadData(UART);&lt;BR /&gt; DBG_vPrintf(UART_STAR, "RXUart\n");&lt;BR /&gt; // /* if(OS_eGetMessageStatus(&amp;amp;APP_msgSerialRx, &amp;amp;u8Byte) == FALSE)&lt;BR /&gt; // {&lt;BR /&gt; // /* Failed to send the message to queue */&lt;BR /&gt; // }*/&lt;BR /&gt; }&lt;BR /&gt; if (irq &amp;amp; E_AHI_UART_INT_TX) {&lt;/P&gt;&lt;P&gt;//if(OS_eGetMessageStatus(&amp;amp;APP_msgSerialTx, &amp;amp;u8Byte) == TRUE)&lt;BR /&gt; // {&lt;BR /&gt; // vAHI_UartWriteData(UART, u8Byte);&lt;BR /&gt; /* decrement activity counter for dequeued data */&lt;BR /&gt; // } else {&lt;BR /&gt; /* disable tx interrupt as nothing to send */&lt;BR /&gt; // UART_vSetTxInterrupt(FALSE);&lt;BR /&gt; // }&lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&amp;nbsp;&lt;/P&gt;&lt;P&gt;Lucas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Mar 2018 07:19:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704903#M3603</guid>
      <dc:creator>lucasip</dc:creator>
      <dc:date>2018-03-01T07:19:58Z</dc:date>
    </item>
    <item>
      <title>Re: JN5168 UART vAHI_Uart0RegisterCallback() Using</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704904#M3604</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Lucas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Did you solve this issue?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Mar 2018 21:33:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704904#M3604</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2018-03-12T21:33:10Z</dc:date>
    </item>
    <item>
      <title>Re: JN5168 UART vAHI_Uart0RegisterCallback() Using</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704905#M3605</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Lucas,&lt;/P&gt;&lt;P&gt;I have fixed it as follow:&lt;/P&gt;&lt;P&gt;- Edit file irq_JN516x.S, then add &lt;STRONG&gt;APP_isrUart&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PIC_ChannelPriorities:&lt;BR /&gt; .byte 0 # pwm1 priority&lt;BR /&gt; .byte 0 # pwm2 priority&lt;BR /&gt; .byte 15 # system controller priority&lt;BR /&gt; .byte 7 # MAC priority&lt;BR /&gt; .byte 0 # AES priority&lt;BR /&gt; .byte 0 # PHY priority&lt;BR /&gt; &lt;STRONG&gt;.byte 5 # uart0 priority&lt;/STRONG&gt;&lt;BR /&gt; .byte 0 # uart1 priority&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PIC_SwVectTable:&lt;BR /&gt; .word vUnclaimedInterrupt # 0&lt;BR /&gt; .word vUnclaimedInterrupt # 1&lt;BR /&gt; .word vUnclaimedInterrupt # 2&lt;BR /&gt; .word vUnclaimedInterrupt # 3&lt;BR /&gt; .word vUnclaimedInterrupt # 4&lt;BR /&gt; &lt;STRONG&gt;.word APP_isrUart # 5&lt;/STRONG&gt;&lt;BR /&gt; .word vUnclaimedInterrupt # 6&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Khac Trung.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Mar 2018 08:19:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704905#M3605</guid>
      <dc:creator>khactrung</dc:creator>
      <dc:date>2018-03-29T08:19:02Z</dc:date>
    </item>
    <item>
      <title>Re: JN5168 UART vAHI_Uart0RegisterCallback() Using</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704906#M3606</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That works. Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Aug 2018 08:20:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704906#M3606</guid>
      <dc:creator>文斌钟</dc:creator>
      <dc:date>2018-08-14T08:20:26Z</dc:date>
    </item>
    <item>
      <title>Re: JN5168 UART vAHI_Uart0RegisterCallback() Using</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704907#M3607</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;that's useful,thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Mar 2019 02:16:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/JN5168-UART-vAHI-Uart0RegisterCallback-Using/m-p/704907#M3607</guid>
      <dc:creator>chengchang_tong</dc:creator>
      <dc:date>2019-03-15T02:16:07Z</dc:date>
    </item>
  </channel>
</rss>

