串口自動波特率檢測簡單介紹

一、前言

        串口自動波特率檢測功能(ABR)可以讓設備在進行串口通信時不用提前設置好波特率,根據對方的波特率實時更改自己的波特率,可以大大提高己方設備的兼容性。波特率檢測分爲硬件檢測和軟件檢測。

        硬件檢測僅適用於具備了相關硬件的MCU,比如STM32的單片機

        而軟件檢測則適用於所有的單片機。

二、硬件自動波特率檢測(以STM32來說明)

1、支持串口

        STM32單片機中只有下面這幾個系列支持ABR:

而這幾個系列的單片機中,也不是所有的串口都支持ABR:

2、ABR模式

        根據檢測波特率方式的不同,ABR又分爲4種模式:

 

三、軟件自動波特率檢測

        軟件的檢測方法是:首先把RX引腳設置爲輸入捕獲模式,然後讓對方發送一個字節的數據(最好是0x7F),通過測量邊緣時間來計算波特率。

        比如接收到0x7F,則會有下面的波形:

        測量到兩個上升沿間的時間,除以8就可以得到一位的時間,求個倒數就是波特率了。

        當然也可以把RX引腳設置爲外部中斷模式、普通輸入模式,然後用其他的定時器來計時。

 

發佈了301 篇原創文章 · 獲贊 662 · 訪問量 134萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章