Hi Hui,
how about the following settings. Those are UART initialization after exiting from the low power mode which are described in the low power mode sample code for K20.
(1) Clock supply for the specified UART.
switch(uartch){
case UART0_BASE_PTR: SIM_SCGC4 |= SIM_SCGC4_UART0_MASK; break;
case UART1_BASE_PTR: SIM_SCGC4 |= SIM_SCGC4_UART1_MASK; break;
case UART2_BASE_PTR: SIM_SCGC4 |= SIM_SCGC4_UART2_MASK; break;
case UART3_BASE_PTR: SIM_SCGC4 |= SIM_SCGC4_UART3_MASK; break;
case UART4_BASE_PTR: SIM_SCGC1 |= SIM_SCGC1_UART4_MASK; break;
case UART5_BASE_PTR: SIM_SCGC1 |= SIM_SCGC1_UART5_MASK; break;
}
(2) Disable Transmit and Receive to change the settings.
UART_C2_REG(uartch) &= ~(UART_C2_TE_MASK | UART_C2_RE_MASK);
(3) For example, setting for 8-bit and no parity.
UART_C1_REG(uartch) = 0;
(4) Baud rate setting.
sbr = (uint16)((sysclk*1000)/(baud * 16));
temp = UART_BDH_REG(uartch) & ~(UART_BDH_SBR(0x1F));
UART_BDH_REG(uartch) = temp | UART_BDH_SBR(((sbr & 0x1F00) >> 8));
UART_BDL_REG(uartch) = (uint8)(sbr & UART_BDL_SBR_MASK);
brfa = (((sysclk*32000)/(baud * 16)) - (sbr * 32));
temp = UART_C4_REG(uartch) & ~(UART_C4_BRFA(0x1F));
UART_C4_REG(uartch) = temp | UART_C4_BRFA(brfa);
(5) Enable transmit and receive.
UART_C2_REG(uartch) |= (UART_C2_TE_MASK | UART_C2_RE_MASK);
Best regards,
Yasuhiko Koumoyo.