問題描述
客戶在使用 STM32G071RB 的 LPUART 單線半雙工模式開發(fā)相關(guān)的應(yīng)用時,進(jìn)行連續(xù)接收發(fā)送數(shù)據(jù)時,客戶在檢測到 RXNE 位時,認(rèn)為接收完成,立即進(jìn)行發(fā)送,發(fā)現(xiàn) stop位(波形不完整)與 start 位發(fā)生了重疊。
客戶配置:
時鐘頻率:HSI=16MHz
波特率:9600 bits/s.
停止位:1bit
字長:8 bits
校驗(yàn):none
問題分析
復(fù)現(xiàn)客戶問題:
實(shí)驗(yàn)環(huán)境搭建:使用兩塊 STM32G071RB NUCLEO 板子采用單線半雙工通信,將兩塊板子編號為 STM32G071RB NUCLEO_A 和 STM32G071RB NUCLEO_B。使用邏輯分析儀抓取信號波形。
問題解決
解決 LPUART 單線半雙工連續(xù)通信過程中 start 位與 stop 位重疊的問題我們找出了三種方法:
- 降低 LPUART 時鐘
- 使能 TE、RE 位
- 使能 485 驅(qū)動器
總結(jié)
在 STM32G071 的 LPUART 在單線半雙工連續(xù)通信過程中可以通過使能 485 驅(qū)動器靈活控制 stop 位與 start 位之間的時間,使得接收和發(fā)送不會相互干擾。