S32k uart RX interrupt problem

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

S32k uart RX interrupt problem

568件の閲覧回数
alice_th
Contributor III

hello,

i see there is lpuart_echo_s32k144 demo, the rx using LPUART_DRV_InstallRxCallback(INST_LPUART_LPUART_1, rxCallback, NULL);

 why still in polling mode the receive the data in main loop?

how to modify it with rx only interrupt mode ? 

if remove below code

/* Receive and store data byte by byte until new line character is received,
* or the buffer becomes full (256 characters received)
*/
LPUART_DRV_ReceiveData(INST_LPUART_LPUART_1, buffer, 1U);
/* Wait for transfer to be completed */
while(LPUART_DRV_GetReceiveStatus(INST_LPUART_LPUART_1, &bytesRemaining) == STATUS_BUSY);

/* Check the status */
status = LPUART_DRV_GetReceiveStatus(INST_LPUART_LPUART_1, &bytesRemaining);

it doesn't work.

int main(void)
{
/* Write your local variable definition here */
status_t status;
/* Declare a buffer used to store the received data */
uint32_t bytesRemaining;

/* Write your code here */
/* For example: for(;;) { } */

/* Initialize and configure clocks
* - see clock manager component for details
*/
CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,
g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);
CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT);

/* Initialize pins
* - See PinSettings component for more info
*/
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS0, g_pin_mux_InitConfigArr0);

/* Initialize LPUART instance */
LPUART_DRV_Init(INST_LPUART_LPUART_1, &lpUartState1, &lpUartInitConfig1);
/* Install the callback for rx events */
LPUART_DRV_InstallRxCallback(INST_LPUART_LPUART_1, rxCallback, NULL);
/* Send a welcome message */
LPUART_DRV_SendDataBlocking(INST_LPUART_LPUART_1, (uint8_t *)welcomeMsg, strlen(welcomeMsg), TIMEOUT);

/* Infinite loop:
* - Receive data from user
* - Echo the received data back
*/
while (1)
{
/* Receive and store data byte by byte until new line character is received,
* or the buffer becomes full (256 characters received)
*/
LPUART_DRV_ReceiveData(INST_LPUART_LPUART_1, buffer, 1U);
/* Wait for transfer to be completed */
while(LPUART_DRV_GetReceiveStatus(INST_LPUART_LPUART_1, &bytesRemaining) == STATUS_BUSY);

/* Check the status */
status = LPUART_DRV_GetReceiveStatus(INST_LPUART_LPUART_1, &bytesRemaining);

if (status != STATUS_SUCCESS)
{
/* If an error occurred, send the error message and exit the loop */
LPUART_DRV_SendDataBlocking(INST_LPUART_LPUART_1, (uint8_t *)errorMsg, strlen(errorMsg), TIMEOUT);
break;
}

/* Append string terminator to the received data */
bufferIdx++;
buffer[bufferIdx] = 0U;

/* If the received string is "Hello Board", send back "Hello World" */
if(strcmp((char *)buffer, "Hello Board\n") == 0)
{
strcpy((char *)buffer, "Hello World\n");
}

/* Send the received data back */
LPUART_DRV_SendDataBlocking(INST_LPUART_LPUART_1, buffer, bufferIdx, TIMEOUT);
/* Reset the buffer index to start a new reception */
bufferIdx = 0U;
}

for(;;) {
if(exit_code != 0) {
break;
}
}
return exit_code;
} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/

0 件の賞賛
返信
2 返答(返信)

549件の閲覧回数
Julián_AragónM
NXP TechSupport
NXP TechSupport

Hi @alice_th,

Even if you configure interrupts for the UART module, you still need to signal that a reception is going to happen.

You must call LPUART_DRV_ReceiveData(). And upon reception, either use LPUART_DRV_SetRxBuffer() to update the buffer and have a continuous reception or end the reception and call LPUART_DRV_ReceiveData() again to enable the Rx interrupt, all inside the UART callback function.

I've attached a modified main for the lpuart_echo example where the polling section in main is removed, and the callback handling I mentioned is implemented. The echo is only performed if bRxFlag is set, which happens in the UART_EVENT_RX_FULL event.

Hope this helps.

0 件の賞賛
返信

565件の閲覧回数
alice_th
Contributor III

i only need rx as interrupt and tx use as printf no need interrupt

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2144936%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32k%20uart%20RX%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%AE%E5%95%8F%E9%A1%8C%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2144936%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3C%2FP%3E%3CP%3Elpuart_echo_s32k144%20%E3%83%87%E3%83%A2%E3%81%8C%E3%81%82%E3%82%8A%E3%80%81rx%20%E3%81%AF%20LPUART_DRV_InstallRxCallback(INST_LPUART_LPUART_1%2C%20rxCallback%2C%20NULL)%3B%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%82%8F%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%AA%E3%81%9C%E3%81%BE%E3%81%A0%E3%83%9D%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%20%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A7%E3%83%A1%E3%82%A4%E3%83%B3%20%E3%83%AB%E3%83%BC%E3%83%97%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8F%97%E4%BF%A1%E3%81%99%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3Erx%20%E3%81%AE%E3%81%BF%E3%81%AE%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A7%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88%3C%2FP%3E%3CP%3E%2F*%20%E6%94%B9%E8%A1%8C%E6%96%87%E5%AD%97%E3%82%92%E5%8F%97%E4%BF%A1%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7%E3%80%81%E3%83%90%E3%82%A4%E3%83%88%E3%81%94%E3%81%A8%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8F%97%E4%BF%A1%E3%81%97%E3%81%A6%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%20*%20%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%81%8C%E3%81%84%E3%81%A3%E3%81%B1%E3%81%84%E3%81%AB%E3%81%AA%E3%82%8B%EF%BC%88256%E6%96%87%E5%AD%97%E3%82%92%E5%8F%97%E4%BF%A1%EF%BC%89%3CBR%20%2F%3E%20*%2F%3CBR%20%2F%3E%20LPUART_DRV_ReceiveData(INST_LPUART_LPUART_1%E3%80%81%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%80%811U)%3B%3CBR%20%2F%3E%20%2F*%20%E8%BB%A2%E9%80%81%E3%81%8C%E5%AE%8C%E4%BA%86%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7%E5%BE%85%E6%A9%9F%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%20while(LPUART_DRV_GetReceiveStatus(INST_LPUART_LPUART_1%2C%20%26amp%3BbytesRemaining)%20%3D%3D%20STATUS_BUSY)%3B%3C%2FP%3E%3CP%3E%2F*%20%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%20*%2F%3CBR%20%2F%3E%20status%20%3D%20LPUART_DRV_GetReceiveStatus(INST_LPUART_LPUART_1%2C%20%26amp%3BbytesRemaining)%3B%3C%2FP%3E%3CP%3E%E3%81%9D%E3%82%8C%E3%81%AF%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3Eint%20%E3%83%A1%E3%82%A4%E3%83%B3(void)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20%2F*%20%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E5%A4%89%E6%95%B0%E3%81%AE%E5%AE%9A%E7%BE%A9%E3%82%92%E3%81%93%E3%81%93%E3%81%AB%E8%A8%98%E8%BF%B0%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%20status_t%20%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%3B%3CBR%20%2F%3E%20%2F*%20%E5%8F%97%E4%BF%A1%E3%81%97%E3%81%9F%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%A0%BC%E7%B4%8D%E3%81%99%E3%82%8B%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%82%92%E5%AE%A3%E8%A8%80%E3%81%99%E3%82%8B%20*%2F%3CBR%20%2F%3E%20uint32_t%20%E6%AE%8B%E3%82%8A%E3%83%90%E3%82%A4%E3%83%88%E6%95%B0%3B%3C%2FP%3E%3CP%3E%2F*%E3%81%93%E3%81%93%E3%81%AB%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%84%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84*%2F%3CBR%20%2F%3E%20%2F*%20%E4%BE%8B%E3%81%88%E3%81%B0%3A%20for(%3B%3B)%20%7B%20%7D%20*%2F%3C%2FP%3E%3CP%3E%2F*%20%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%97%E3%81%A6%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%3CBR%20%2F%3E*%20-%20%E8%A9%B3%E7%B4%B0%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AF%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%82%92%E5%8F%82%E7%85%A7%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%3CBR%20%2F%3E*%2F%3CBR%20%2F%3E%20CLOCK_SYS_Init(g_clockManConfigsArr%2C%20CLOCK_MANAGER_CONFIG_CNT%2C%3CBR%20%2F%3E%20g_clockManCallbacksArr%E3%80%81CLOCK_MANAGER_CALLBACK_CNT)%3B%3CBR%20%2F%3E%20CLOCK_SYS_UpdateConfiguration(0U%E3%80%81CLOCK_MANAGER_POLICY_AGREEMENT)%3B%3C%2FP%3E%3CP%3E%2F*%20%E3%83%94%E3%83%B3%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%99%E3%82%8B%3CBR%20%2F%3E*%20-%20%E8%A9%B3%E7%B4%B0%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AF%E3%80%81PinSettings%20%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%82%92%E5%8F%82%E7%85%A7%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%3CBR%20%2F%3E*%2F%3CBR%20%2F%3E%20PINS_DRV_Init(%E6%A7%8B%E6%88%90%E6%B8%88%E3%81%BF%E3%83%94%E3%83%B3%E6%95%B00%E3%80%81g_pin_mux_InitConfigArr0)%3B%3C%2FP%3E%3CP%3E%2F*%20LPUART%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%99%E3%82%8B%20*%2F%3CBR%20%2F%3E%20LPUART_DRV_Init(INST_LPUART_LPUART_1%E3%80%81%26amp%3BlpUartState1%E3%80%81%26amp%3BlpUartInitConfig1)%3B%3CBR%20%2F%3E%20%2F*%20rx%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E6%83%85%E5%A0%B1%20%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%20LPUART_DRV_InstallRxCallback(INST_LPUART_LPUART_1%E3%80%81rxCallback%E3%80%81NULL)%3B%3CBR%20%2F%3E%20%2F*%20%E3%82%88%E3%81%86%E3%81%93%E3%81%9D%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%92%E9%80%81%E4%BF%A1%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%20LPUART_DRV_SendDataBlocking(INST_LPUART_LPUART_1%E3%80%81(uint8_t%20*)welcomeMsg%E3%80%81strlen(welcomeMsg)%E3%80%81TIMEOUT)%3B%3C%2FP%3E%3CP%3E%2F*%20%E7%84%A1%E9%99%90%E3%83%AB%E3%83%BC%E3%83%97%3A%3CBR%20%2F%3E%20*%20-%20%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%8B%E3%82%89%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8F%97%E4%BF%A1%E3%81%99%E3%82%8B%3CBR%20%2F%3E*%20-%20%E5%8F%97%E4%BF%A1%E3%81%97%E3%81%9F%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%82%A8%E3%82%B3%E3%83%BC%E3%83%90%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B%3CBR%20%2F%3E*%2F%3CBR%20%2F%3E%E4%B8%80%E6%96%B9%EF%BC%881%EF%BC%89%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20%3CSTRONG%3E%2F*%20%E6%94%B9%E8%A1%8C%E6%96%87%E5%AD%97%E3%82%92%E5%8F%97%E4%BF%A1%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7%E3%80%81%E3%83%90%E3%82%A4%E3%83%88%E3%81%94%E3%81%A8%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8F%97%E4%BF%A1%E3%81%97%E3%81%A6%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FSTRONG%3E%3CBR%20%2F%3E%20%3CSTRONG%3E*%20%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%81%8C%E3%81%84%E3%81%A3%E3%81%B1%E3%81%84%E3%81%AB%E3%81%AA%E3%82%8B%EF%BC%88256%E6%96%87%E5%AD%97%E3%82%92%E5%8F%97%E4%BF%A1%EF%BC%89%3C%2FSTRONG%3E%3CBR%20%2F%3E%20%3CSTRONG%3E*%2F%3C%2FSTRONG%3E%3CBR%20%2F%3E%20%3CSTRONG%3ELPUART_DRV_ReceiveData(INST_LPUART_LPUART_1%E3%80%81%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%80%811U)%3B%3C%2FSTRONG%3E%3CBR%20%2F%3E%20%3CSTRONG%3E%2F*%20%E8%BB%A2%E9%80%81%E3%81%8C%E5%AE%8C%E4%BA%86%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7%E5%BE%85%E6%A9%9F%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3C%2FSTRONG%3E%3CBR%20%2F%3E%20%3CSTRONG%3Ewhile(LPUART_DRV_GetReceiveStatus(INST_LPUART_LPUART_1%2C%20%26amp%3BbytesRemaining)%20%3D%3D%20STATUS_BUSY)%3B%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E%3CSTRONG%3E%2F*%20%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%20*%2F%3C%2FSTRONG%3E%3CBR%20%2F%3E%20%3CSTRONG%3Estatus%20%3D%20LPUART_DRV_GetReceiveStatus(INST_LPUART_LPUART_1%2C%20%26amp%3BbytesRemaining)%3B%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3Eif%20(%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%20!%3D%20STATUS_SUCCESS)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20%2F*%20%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%92%E9%80%81%E4%BF%A1%E3%81%97%E3%81%A6%E3%83%AB%E3%83%BC%E3%83%97%E3%82%92%E7%B5%82%E4%BA%86%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%20LPUART_DRV_SendDataBlocking(INST_LPUART_LPUART_1%2C%20(uint8_t%20*)errorMsg%2C%20strlen(errorMsg)%2C%20TIMEOUT)%3B%3CBR%20%2F%3E%E5%A3%8A%E3%81%99%3B%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3CP%3E%2F*%20%E5%8F%97%E4%BF%A1%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AB%E6%96%87%E5%AD%97%E5%88%97%E7%B5%82%E7%AB%AF%E6%96%87%E5%AD%97%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%E3%83%90%E3%83%83%E3%83%95%E3%82%A1IDx%2B%2B%3B%3CBR%20%2F%3E%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%5B%E3%83%90%E3%83%83%E3%83%95%E3%82%A1Idx%5D%20%3D%200U%3B%3C%2FP%3E%3CP%3E%2F*%20%E5%8F%97%E4%BF%A1%E3%81%97%E3%81%9F%E6%96%87%E5%AD%97%E5%88%97%E3%81%8C%E3%80%8CHello%20Board%E3%80%8D%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%81%E3%80%8CHello%20World%E3%80%8D%E3%82%92%E8%BF%94%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%20if(strcmp((char%20*)buffer%2C%20%22Hello%20Board%5Cn%22)%20%3D%3D%200)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20strcpy((char%20*)%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%80%81%E3%80%8CHello%20World%5Cn%E3%80%8D)%3B%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3CP%3E%2F*%20%E5%8F%97%E4%BF%A1%E3%81%97%E3%81%9F%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E9%80%81%E3%82%8A%E8%BF%94%E3%81%99%20*%2F%3CBR%20%2F%3E%20LPUART_DRV_SendDataBlocking(INST_LPUART_LPUART_1%E3%80%81%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%80%81%E3%83%90%E3%83%83%E3%83%95%E3%82%A1Idx%E3%80%81%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88)%3B%3CBR%20%2F%3E%20%2F*%20%E6%96%B0%E3%81%97%E3%81%84%E5%8F%97%E4%BF%A1%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%82%92%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%E3%83%90%E3%83%83%E3%83%95%E3%82%A1IDx%20%3D%200U%3B%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3CP%3E%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AB%EF%BC%88%3B%3B%EF%BC%89%20%7B%3CBR%20%2F%3E%20if(%E7%B5%82%E4%BA%86%E3%82%B3%E3%83%BC%E3%83%89%20!%3D%200)%20%7B%3CBR%20%2F%3E%E5%A3%8A%E3%81%99%3B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20exit_code%20%E3%82%92%E8%BF%94%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%20%7D%20%2F***%20%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%AB%E3%83%BC%E3%83%81%E3%83%B3%E3%81%AE%E7%B5%82%E4%BA%86%E3%80%82%E3%81%93%E3%81%AE%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%AA%E3%81%84%E3%81%A7%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84!!!%20***%2F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2145411%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32k%20uart%20RX%20interrupt%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2145411%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F218113%22%20target%3D%22_blank%22%3E%40alice_th%3C%2FA%3E%20%E3%80%81%3C%2FP%3E%0A%3CP%3EUART%20%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%A7%E3%82%82%E3%80%81%E5%8F%97%E4%BF%A1%E3%81%8C%E8%A1%8C%E3%82%8F%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E9%80%9A%E7%9F%A5%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3ELPUART_DRV_ReceiveData%3C%2FSTRONG%3E%20()%20%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E5%8F%97%E4%BF%A1%E6%99%82%E3%81%AB%E3%81%AF%E3%80%81%20%3CSTRONG%3ELPUART_DRV_SetRxBuffer%3C%2FSTRONG%3E%20()%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%97%E3%80%81%E9%80%A3%E7%B6%9A%E5%8F%97%E4%BF%A1%E3%82%92%E8%A1%8C%E3%81%86%E3%81%8B%E3%80%81%E5%8F%97%E4%BF%A1%E3%82%92%E7%B5%82%E4%BA%86%E3%81%97%E3%81%A6%3CSTRONG%3ELPUART_DRV_ReceiveData%3C%2FSTRONG%3E%20()%20%E3%82%92%E5%86%8D%E5%BA%A6%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%A6%20Rx%20%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%82%8C%E3%82%89%E3%81%AF%E3%81%99%E3%81%B9%E3%81%A6%20UART%20%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E9%96%A2%E6%95%B0%E5%86%85%E3%81%A7%E8%A1%8C%E3%82%8F%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3Elpuart_echo%20%E3%81%AE%E4%BE%8B%E7%94%A8%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%9F%20main%20%E3%82%92%E6%B7%BB%E4%BB%98%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%81%93%E3%81%AE%20main%20%E3%81%A7%E3%81%AF%E3%80%81main%20%E3%81%AE%E3%83%9D%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%20%E3%82%BB%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%8C%E5%89%8A%E9%99%A4%E3%81%95%E3%82%8C%E3%80%81%E5%89%8D%E8%BF%B0%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E5%87%A6%E7%90%86%E3%81%8C%E5%AE%9F%E8%A3%85%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%82%A8%E3%82%B3%E3%83%BC%E3%81%AF%E3%80%81%20%3CSTRONG%3EbRxFlag%3C%2FSTRONG%3E%E3%81%8C%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AB%E3%81%AE%E3%81%BF%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%80%81%E3%81%93%E3%82%8C%E3%81%AF%3CSTRONG%3EUART_EVENT_RX_FULL%3C%2FSTRONG%3E%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E6%83%85%E5%A0%B1%E3%81%A7%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%81%93%E3%82%8C%E3%81%8C%E3%81%8A%E5%BD%B9%E3%81%AB%E7%AB%8B%E3%81%A6%E3%81%B0%E5%B9%B8%E3%81%84%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2144940%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32k%20uart%20RX%20interrupt%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2144940%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%A8%E3%81%97%E3%81%A6%E5%BF%85%E8%A6%81%E3%81%AA%E3%81%AE%E3%81%AF%20rx%20%E3%81%AE%E3%81%BF%E3%81%A7%E3%80%81printf%20%E3%81%A8%E3%81%97%E3%81%A6%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AF%20tx%20%E3%81%AF%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%AF%E5%BF%85%E8%A6%81%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%3C%2FP%3E%3C%2FLINGO-BODY%3E