kerryzhou
Hi kerry,
We are working on this issue since long time. After evaluating it on both evaluation board and our development board we found the same issue.
After analizing the issue we found that after changing the baudrate of the application side it is some how UART receiving interrupts were getting disabled , due to which we are not able to recieve any data from the application.
As you can see we have done the work around solution as mentioned below
switch (status)
{
case kStatus_UART_TxIdle:
UART_TransferReceiveNonBlocking(UART_RS485, &g_uart_rs485_handle, &g_p_receivepointer_RS485, NULL);
break;
case kStatus_UART_RxIdle:
g_ui8_dataReceived_RS485 = g_ui8_rxBuff_RS485;
uartByteReceived(g_ui8_dataReceived_RS485);
g_ui8_dataReceived_RS485 = 0;
UART_TransferReceiveNonBlocking(UART_RS485, &g_uart_rs485_handle, &g_p_receivepointer_RS485, NULL);
break;
case kStatus_UART_IdleLineDetected:
break;
case kStatus_UART_RxHardwareOverrun:
break;
default:
UART_TransferReceiveNonBlocking(UART_RS485, &g_uart_rs485_handle, &g_p_receivepointer_RS485, NULL);
break;
}
Here we reenable all the interrupts in the default case. With this, the controller need not to be restarted after changing the Baudrate or Parity in Application.
We tried the solutions provided by hte other members but still not able to resolve this issue.
Please let us know whether this is the only way to take care of this solution? Also i think you can also regenerate the same issue are your end by using evaluation board FRDM K22. The conditions are given i the initial query it self by vaibhavi.
Request you to please confirm and let us know the reason or any modification which is required in order to resolve this issue or the work around solution.
Waiting for your reply.
Thanks
Gaurav More