S32k uart RX interrupt problem

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

S32k uart RX interrupt problem

574 次查看
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 回复数

555 次查看
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 项奖励
回复

571 次查看
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%20%E4%B8%AD%E6%96%AD%E9%97%AE%E9%A2%98%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2144936%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3C%2FP%3E%3CP%3E%E6%88%91%E7%9C%8B%E5%88%B0%E6%9C%89%20lpuart_echo_s32k144%20%E6%BC%94%E7%A4%BA%EF%BC%8CRx%20%E4%BD%BF%E7%94%A8%20LPUART_DRV_InstallRxCallback(INST_LPUART_LPUART_1%2CrxCallback%2CNULL)%EF%BC%9B%3C%2FP%3E%3CP%3E%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%98%E5%9C%A8%E8%BD%AE%E8%AF%A2%E6%A8%A1%E5%BC%8F%E4%B8%8B%E5%9C%A8%E4%B8%BB%E5%9B%9E%E8%B7%AF%E4%B8%AD%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%EF%BC%9F%3C%2FP%3E%3CP%3E%E5%A6%82%E4%BD%95%E7%94%A8%E5%8F%AA%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%E7%9A%84%E4%B8%AD%E6%96%AD%E6%A8%A1%E5%BC%8F%E4%BF%AE%E6%94%B9%E5%AE%83%EF%BC%9F%20%3C%2FP%3E%3CP%3E%E5%A6%82%E6%9E%9C%E5%88%A0%E9%99%A4%E4%BB%A5%E4%B8%8B%E4%BB%A3%E7%A0%81%3C%2FP%3E%3CP%3E%2F*%20%E9%80%90%E5%AD%97%E8%8A%82%E6%8E%A5%E6%94%B6%E5%92%8C%E5%AD%98%E5%82%A8%E6%95%B0%E6%8D%AE%EF%BC%8C%E7%9B%B4%E5%88%B0%E6%8E%A5%E6%94%B6%E5%88%B0%E6%8D%A2%E8%A1%8C%E7%AC%A6%EF%BC%8C*%20%E6%88%96%E8%80%85%E7%BC%93%E5%86%B2%E5%8C%BA%E5%B7%B2%E6%BB%A1%EF%BC%88%E6%8E%A5%E6%94%B6%20256%20%E4%B8%AA%E5%AD%97%E8%8A%82%EF%BC%89*%2F%20lpuart_DRV_ReceiveData%20(INST_%20%3CBR%20%2F%3E%20LPUART_1%EF%BC%8C%E7%BC%93%E5%86%B2%E5%8C%BA%EF%BC%8C1U)%EF%BC%9B%2F%3CBR%20%2F%3E*%20%E7%AD%89%E5%BE%85%E4%BC%A0%E8%BE%93%E5%AE%8C%E6%88%90%20%3CBR%20%2F%3E%20*%2F%20while%20(lpuart_drv_getReceiveStatus%20(INST_LPUART_LPUART_1%EF%BC%8C%26amp%3B%20%E5%89%A9%E4%BD%99%E5%AD%97%E8%8A%82)%20%3D%3D%20STATUS_BUSY)%3B%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%2F*%20%E6%A3%80%E6%9F%A5%E7%8A%B6%E6%80%81%20*%2F%3CBR%20%2F%3Estatus%20%3D%20LPUART_DRV_GetReceiveStatus(INST_LPUART_LPUART_1%2C%26amp%3BbytesRemaining)%EF%BC%9B%3C%2FP%3E%3CP%3E%E6%B2%A1%E6%9C%89%E7%94%A8%E3%80%82%3C%2FP%3E%3CP%3Eint%20main(void)%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%2F*%20%E5%9C%A8%E6%AD%A4%E5%86%99%E5%85%A5%E6%9C%AC%E5%9C%B0%E5%8F%98%E9%87%8F%E5%AE%9A%E4%B9%89%20*%2F%3CBR%20%2F%3Estatus_t%20status%3B%3CBR%20%2F%3E%2F*%20%E5%A3%B0%E6%98%8E%E7%94%A8%E4%BA%8E%E5%AD%98%E5%82%A8%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%E7%9A%84%E7%BC%93%E5%86%B2%E5%8C%BA%20*%2F%3CBR%20%2F%3Euint32_t%20bytesRemaining%EF%BC%9B%3C%2FP%3E%3CP%3E%2F*%20%E5%9C%A8%E6%AD%A4%E5%86%99%E5%85%A5%E4%BB%A3%E7%A0%81%20*%2F%3CBR%20%2F%3E%2F*%20%E4%BE%8B%E5%A6%82%EF%BC%9A%20for(%3B%3B)%20%7B%20%7D*%2F%3C%2FP%3E%3CP%3E%2F*%20%E5%88%9D%E5%A7%8B%E5%8C%96%E5%92%8C%E9%85%8D%E7%BD%AE%E6%97%B6%E9%92%9F%20%3CBR%20%2F%3E%20*-%E8%AF%A6%E6%83%85%E8%AF%B7%E5%8F%82%E9%98%85%E6%97%B6%E9%92%9F%E7%AE%A1%E7%90%86%E5%99%A8%E5%85%83%E5%99%A8%E4%BB%B6%20%3CBR%20%2F%3E%20*%2F%20cl%20%3CBR%20%2F%3E%20ock_sys_init%20(g_clockmanConfigSarr%E3%80%81CLOCK_MANAGER_CONFIG_CNT%E3%80%81g_clockmancallbackSarr%E3%80%81CLOCK_MANAGER_CONFIGARE%E3%80%81CLOCK_MANAGER_CONFIGARE%E3%80%81CLOCK_MANAGER_CONFIGURATION%E3%80%81CLOCK_MANAGER_POLICY_AGREATION)%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%2F*%20%E5%88%9D%E5%A7%8B%E5%8C%96%E5%BC%95%E8%84%9A%20*-%E6%9C%89%E5%85%B3%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%EF%BC%8C%E8%AF%B7%E5%8F%82%E8%A7%81%20pinSettings%20%E7%BB%84%E4%BB%B6%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20*%2F%20pin%20%3CBR%20%2F%3E%20s_drv_init%EF%BC%88NUM_OF_CONFIGURED_PINS0%EF%BC%8Cg_pin_mux_initConfigarr0%EF%BC%89%EF%BC%9B%3C%2FP%3E%3CP%3E%2F*%20%E5%88%9D%E5%A7%8B%E5%8C%96%20LPUART%20%E5%AE%9E%E4%BE%8B%20*%2F%3CBR%20%2F%3ELPUART_DRV_Init(INST_LPUART_LPUART_1%2C%26amp%3BlpUartState1%2C%26amp%3BlpUartInitConfig1)%3B%3CBR%20%2F%3E%2F*%20%E4%B8%BA%20rx%20%E4%BA%8B%E4%BB%B6%E5%AE%89%E8%A3%85%E5%9B%9E%E8%B0%83%20*%2F%3CBR%20%2F%3ELPUART_DRV_InstallRxCallback(INST_LPUART_LPUART_1%2C%20rxCallback%2C%20NULL)%EF%BC%9B%3CBR%20%2F%3E%2F*%20%E5%8F%91%E9%80%81%E6%AC%A2%E8%BF%8E%E6%B6%88%E6%81%AF%20*%2F%3CBR%20%2F%3ELPUART_DRV_SendDataBlocking(INST_LPUART_LPUART_1%2C%20(uint8_t%20*)welcomeMsg%2C%20strlen(welcomeMsg)%2C%20TIMEOUT)%EF%BC%9B%3C%2FP%3E%3CP%3E%2F*%3CBR%20%2F%3E%20%E6%97%A0%E9%99%90%E5%BE%AA%E7%8E%AF%EF%BC%9A*-%E6%8E%A5%E6%94%B6%E6%9D%A5%E8%87%AA%E7%94%A8%E6%88%B7%E7%9A%84%E6%95%B0%E6%8D%AE%3CBR%20%2F%3E%20*-%E5%9B%9E%E6%98%BE%E6%8E%A5%E6%94%B6%E5%88%B0%E7%9A%84%E6%95%B0%E6%8D%AE%3CBR%20%2F%3E%20*%2F%3CBR%20%2F%3E%20while%20(1)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%3CSTRONG%3E%20%2F%20*%20%E9%80%90%E5%AD%97%E8%8A%82%E6%8E%A5%E6%94%B6%E5%92%8C%E5%AD%98%E5%82%A8%E6%95%B0%E6%8D%AE%EF%BC%8C%E7%9B%B4%E5%88%B0%E6%8E%A5%E6%94%B6%E5%88%B0%E6%8D%A2%E8%A1%8C%E7%AC%A6%EF%BC%8C*%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSTRONG%3E%20%E6%88%96%E8%80%85%E7%BC%93%E5%86%B2%E5%8C%BA%E5%B7%B2%E6%BB%A1%EF%BC%88%E6%8E%A5%E6%94%B6%20256%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSTRONG%3E%20%E4%B8%AA%E5%AD%97%E7%AC%A6%EF%BC%89*%2F%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSTRONG%3E%20lpuart_DRV_ReceiveData%20(IN%20ST_LPUART_1%EF%BC%8C%E7%BC%93%E5%86%B2%E5%8C%BA%EF%BC%8C1U)%EF%BC%9B%2F%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSTRONG%3E%20*%20%E7%AD%89%E5%BE%85%E4%BC%A0%E8%BE%93%E5%AE%8C%E6%88%90%20*%2F%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSTRONG%3E%20while%20(%20lpuart_drv_getReceiveStatus%20(INST_LPUART_LPUART%20_1%EF%BC%8C%26amp%3B%20%E5%89%A9%E4%BD%99%E5%AD%97%E8%8A%82)%20%3D%3D%20STATUS_BUSY)%3B%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E%3CSTRONG%3E%2F*%20%E6%A3%80%E6%9F%A5%E7%8A%B6%E6%80%81%20*%2F%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSTRONG%3Estatus%20%3D%20LPUART_DRV_GetReceiveStatus(INST_LPUART_LPUART_1%2C%26amp%3BbytesRemaining)%EF%BC%9B%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3Eif%20(status%20!%3D%20STATUS_SUCCESS)%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%2F*%20%E5%A6%82%E6%9E%9C%E5%8F%91%E7%94%9F%E9%94%99%E8%AF%AF%EF%BC%8C%E5%88%99%E5%8F%91%E9%80%81%E9%94%99%E8%AF%AF%E4%BF%A1%E6%81%AF%E5%B9%B6%E9%80%80%E5%87%BA%E5%BE%AA%E7%8E%AF%20*%2F%3CBR%20%2F%3ELPUART_DRV_SendDataBlocking(INST_LPUART_LPUART_1%2C%20(uint8_t%20*)errorMsg%2C%20strlen(errorMsg)%2C%20TIMEOUT)%3B%3CBR%20%2F%3Ebreak%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3E%2F*%20%E4%B8%BA%E6%8E%A5%E6%94%B6%E5%88%B0%E7%9A%84%E6%95%B0%E6%8D%AE%E6%B7%BB%E5%8A%A0%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%BB%93%E6%9D%9F%E7%AC%A6%20*%2F%3CBR%20%2F%3EbufferIdx%2B%2B%3B%3CBR%20%2F%3Ebuffer%5BbufferIdx%5D%20%3D%200U%EF%BC%9B%3C%2FP%3E%3CP%3E%2F*%20%E5%A6%82%E6%9E%9C%E6%94%B6%E5%88%B0%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%98%AF%20%22%20Hello%20%E6%9D%BF%20%22%EF%BC%8C%E5%88%99%E5%8F%91%E5%9B%9E%20%22%20Hello%20World%20%22%20*%2F%20%3CBR%20%2F%3E%20if%20(strcmp%20((char%20*)%20%E7%BC%93%E5%86%B2%E5%8C%BA%EF%BC%8C%22%20Hello%20%E6%9D%BF%5Cn%20%22)%20%3D%3D%200)%20%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3Estrcpy%20((char%20*)%20%E7%BC%93%E5%86%B2%E5%8C%BA%EF%BC%8C%22%20Hello%20World%5Cn%20%22)%3B%7D%20%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%2F*%20%E5%8F%91%E5%9B%9E%E6%8E%A5%E6%94%B6%E5%88%B0%E7%9A%84%E6%95%B0%E6%8D%AE%20*%2F%20%3CBR%20%2F%3E%20lpuart_drv_sendDataBlocking%EF%BC%88INST_LPUART_LPUART_1%E3%80%81buffer%E3%80%81BufferidX%E3%80%81TIMEOUT%EF%BC%89%EF%BC%9B%2F*%20RESET%20%E7%BC%93%E5%86%B2%E5%8C%BA%E7%B4%A2%E5%BC%95%E4%BB%A5%E5%BC%80%E5%A7%8B%E6%96%B0%E7%9A%84%E6%8E%A5%E6%94%B6%20*%2F%20BufferidX%20%3D%200U%EF%BC%9B%7D%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%3C%2FP%3E%3CP%3Efor(%3B%3B)%20%7B%3CBR%20%2F%3Eif(exit_code%20!%3D%200)%20%7B%3CBR%20%2F%3Ebreak%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3CBR%20%2F%3Ereturn%20exit_code%3B%3CBR%20%2F%3E%7D%2F***%20%E4%B8%BB%E4%BE%8B%E7%A8%8B%E7%BB%93%E6%9D%9F%E3%80%82%E8%AF%B7%E5%8B%BF%E4%BF%AE%E6%94%B9%E6%AD%A4%E6%96%87%E6%9C%AC***%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%E5%97%A8%EF%BC%8C%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F218113%22%20target%3D%22_blank%22%3E%40alice_th%E3%80%81%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E5%8D%B3%E4%BD%BF%E4%B8%BA%20UART%20%E6%A8%A1%E5%9D%97%E9%85%8D%E7%BD%AE%E4%BA%86%E4%B8%AD%E6%96%AD%EF%BC%8C%E4%BB%8D%E9%9C%80%E8%A6%81%E5%8F%91%E5%87%BA%E4%BF%A1%E5%8F%B7%E8%AF%B4%E6%98%8E%E6%8E%A5%E6%94%B6%E5%8D%B3%E5%B0%86%E5%8F%91%E7%94%9F%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%82%A8%E5%BF%85%E9%A1%BB%E8%B0%83%E7%94%A8%3CSTRONG%3ELPUART_DRV_ReceiveData%3C%2FSTRONG%3E()%E3%80%82%E6%8E%A5%E6%94%B6%E6%97%B6%EF%BC%8C%E8%A6%81%E4%B9%88%E4%BD%BF%E7%94%A8%3CSTRONG%3ELPUART_DRV_SetRxBuffer%3C%2FSTRONG%3E()%20%E6%9B%B4%E6%96%B0%E7%BC%93%E5%86%B2%E5%8C%BA%E5%B9%B6%E8%BF%9B%E8%A1%8C%E8%BF%9E%E7%BB%AD%E6%8E%A5%E6%94%B6%EF%BC%8C%E8%A6%81%E4%B9%88%E7%BB%93%E6%9D%9F%E6%8E%A5%E6%94%B6%E5%B9%B6%E5%86%8D%E6%AC%A1%E8%B0%83%E7%94%A8%3CSTRONG%3ELPUART_DRV_ReceiveData%3C%2FSTRONG%3E()%EF%BC%8C%E4%BB%A5%E5%90%AF%E7%94%A8%20Rx%20%E4%B8%AD%E6%96%AD%EF%BC%8C%E6%89%80%E6%9C%89%E8%BF%99%E4%B8%80%E5%88%87%E9%83%BD%E5%9C%A8%20UART%20%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0%E5%86%85%E8%BF%9B%E8%A1%8C%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%88%91%E5%B7%B2%E7%BB%8F%E4%B8%BAlpuart_echo%E7%A4%BA%E4%BE%8B%E9%99%84%E4%B8%8A%E4%BA%86%E4%B8%80%E4%B8%AA%E4%BF%AE%E6%94%B9%E5%90%8E%E7%9A%84%E4%B8%BB%E9%A1%B5%E9%9D%A2%EF%BC%8C%E5%85%B6%E4%B8%AD%E5%88%A0%E9%99%A4%E4%BA%86main%E4%B8%AD%E7%9A%84%E8%BD%AE%E8%AF%A2%E9%83%A8%E5%88%86%EF%BC%8C%E5%B9%B6%E5%AE%9E%E7%8E%B0%E4%BA%86%E6%88%91%E6%8F%90%E5%88%B0%E7%9A%84%E5%9B%9E%E8%B0%83%E5%A4%84%E7%90%86%E3%80%82%E5%8F%AA%E6%9C%89%E8%AE%BE%E7%BD%AE%E4%BA%86%3CSTRONG%3EbRxFlag%3C%2FSTRONG%3E%EF%BC%88%E5%8F%91%E7%94%9F%E5%9C%A8%3CSTRONG%3EUART_EVENT_RX_FULL%3C%2FSTRONG%3E%E4%BA%8B%E4%BB%B6%E4%B8%AD%EF%BC%89%EF%BC%8C%E6%89%8D%E4%BC%9A%E6%89%A7%E8%A1%8C%E5%9B%9E%E6%B3%A2%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%B8%8C%E6%9C%9B%E8%BF%99%E8%83%BD%E5%B8%AE%E5%88%B0%E6%82%A8%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%E6%88%91%E5%8F%AA%E9%9C%80%E8%A6%81%20Rx%20%E4%BD%9C%E4%B8%BA%E4%B8%AD%E6%96%AD%EF%BC%8CTx%20%E7%94%A8%E4%BD%9C%E6%89%93%E5%8D%B0%E8%BE%93%E5%87%BA%EF%BC%8C%E4%B8%8D%E9%9C%80%E8%A6%81%E4%B8%AD%E6%96%AD%3C%2FP%3E%3C%2FLINGO-BODY%3E