最近在学杰发7840串口,学习了一下串口单线模式
串口单线模式(半双工)用的比较少,一般很少有人用,我理解这个模式的好处就是减少一个线。只用一个TX就可以当发送又可以当接收。
串口单线半双工
主要库函数就2个:
UART_SetSingleWire:使能单线模式
UART_SetTxDir:设置TX方向,可以设置为输入和输出
uint8_t i = 0;
status_t status;
UART_SetTxDir(UART1, UART_TX_PIN_DIR_OUTPUT); /* tx output */
for(i = 0; i < UART_DATA_LEN; i++)
{
g_sendData[i] = 0x55 + i;
}
status = UART_DRV_SendDataPolling(1, g_sendData, UART_DATA_LEN); /*发送数据*/
OSIF_TimeDelay(1);
if(status == STATUS_SUCCESS)
{
UART_SetTxDir(UART1, UART_TX_PIN_DIR_INPUT); /* tx input */
status = UART_DRV_ReceiveDataPolling(1,g_receiveData,UART_DATA_LEN);/*接收数据*/
__nop();
}