CW32L083的UART單線半雙工模式介紹
一、簡介
半雙工即Half duplex Communication,是指在通信過程的任意時刻,信息既可由A傳到B,又能由B傳A,但同時只有一個方向上的傳輸存在。由于這種方式要頻繁變換信道方向,故效率低,但可以節(jié)約傳輸線路。半雙工方式適用于終端與終端之間的會話式通信。
二、實際操作(以CW32L083為例)
設(shè)置 UARTx_CR2.SIGNAL 為 1 使 UART 工作于單線半雙工工作模式。在該模式下,使用 UARTx_TXD 引腳進行數(shù)據(jù)的發(fā)送和接收,不占用 UARTx_RXD 引腳(UARTx_RXD 可作通用 IO 使用)。寫數(shù)據(jù)到 UARTx_TDR 寄存器后,UARTx_TXD 引腳立即進入發(fā)送狀態(tài),輸出 UARTx_TDR 寄存器中的數(shù)據(jù)。數(shù)據(jù) 發(fā)送完成后,UARTx_TXD 引腳恢復到常態(tài)的接收狀態(tài)。沒有發(fā)送數(shù)據(jù)時,UARTx_TXD 引腳處于接收狀態(tài),數(shù)據(jù)接收完成后,接收完成標志位 UARTx_ISR.RC 會被硬件置 位,此時應盡快讀取 UARTx_RDR 寄存器,并清除 UARTx_ISR.RC 標志位。

UART工作在單線半雙工模式時,UARTx_TXD引腳需要配置為開漏輸出。另外用戶應采取適當?shù)膽脤颖Wo機制,以確保不會出現(xiàn)多主機同時向總線發(fā)送數(shù)據(jù)。
三、UART單線半雙工通信示例
硬件采用CW32L083VxTx StartKit單板,用杜邦線連接PA08和PA06引腳。
UARTy查詢方式發(fā)送TxBuffer1緩沖區(qū)中的數(shù)據(jù),UARTz查詢方式接收數(shù)據(jù),并存儲到RxBuffer2緩沖區(qū)。
UARTz查詢方式發(fā)送TxBuffer2緩沖區(qū)中的數(shù)據(jù),UARTy查詢方式接收數(shù)據(jù),并存儲到RxBuffer1緩沖區(qū)。
比較TxBuffer1和RxBuffer2、TxBuffer2和RxBuffer1,如果數(shù)據(jù)一致,則LED1亮,否則LED2亮。
1、配置RCC
2、配置GPIO
3、配置UART
4、定義變量
5、主程序
6、測試結(jié)果:UART半雙工通信方式工作正常, LED1亮。