UART configuration and operation for LPC55S16

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

UART configuration and operation for LPC55S16

跳至解决方案
1,057 次查看
yangao
Contributor III

Hi,

I am using the LPC55S16 evaluation board. In our design, there is a UART that needs to be configured for half-duplex operation. It should normally function in RX mode, but when receiving data, it should switch to TX mode to send a response back. Later, at some point, we need to convert the UART to full-duplex operation. Is this achievable? If so, how can it be done?

Regards,

Winston

 

0 项奖励
回复
1 解答
1,027 次查看
Harry_Zhang
NXP Employee
NXP Employee

HI @yangao 

Yes, you can configure the UART on the LPC55S16 for both half-duplex and full-duplex operation.

Configure UART initially for receiving (RX)

    USART_GetDefaultConfig(&config);
    config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE;
    config.enableTx     = false;
    config.enableRx     = true;

    USART_Init(DEMO_USART, &config, DEMO_USART_CLK_FREQ);

Configure UART for full-duplex (TX and RX enabled)

    USART_GetDefaultConfig(&config);
    config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE;
    config.enableTx     = true;
    config.enableRx     = true;

    USART_Init(DEMO_USART, &config, DEMO_USART_CLK_FREQ);

 

BR

Hang

在原帖中查看解决方案

0 项奖励
回复
2 回复数
1,009 次查看
yangao
Contributor III

Hi,

Follow up question, when  the UART works in half duplex mode, actually I need to set it as one-wire UART - the TX and RX are in the same line. When the UART works in full duplex mode, the TX and RX are separate lines. Is there a solution for this kind of settings?

Regards,

Winston

0 项奖励
回复
1,028 次查看
Harry_Zhang
NXP Employee
NXP Employee

HI @yangao 

Yes, you can configure the UART on the LPC55S16 for both half-duplex and full-duplex operation.

Configure UART initially for receiving (RX)

    USART_GetDefaultConfig(&config);
    config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE;
    config.enableTx     = false;
    config.enableRx     = true;

    USART_Init(DEMO_USART, &config, DEMO_USART_CLK_FREQ);

Configure UART for full-duplex (TX and RX enabled)

    USART_GetDefaultConfig(&config);
    config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE;
    config.enableTx     = true;
    config.enableRx     = true;

    USART_Init(DEMO_USART, &config, DEMO_USART_CLK_FREQ);

 

BR

Hang

0 项奖励
回复