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

2021-10-02 17:55:36 字數 904 閱讀 6814

一、前言

串列埠自動波特率檢測功能(abr)可以讓裝置在進行串列埠通訊時不用提前設定好波特率,根據對方的波特率實時更改自己的波特率,可以大大提高己方裝置的相容性。波特率檢測分為硬體檢測和軟體檢測。

硬體檢測僅適用於具備了相關硬體的mcu,比如stm32的微控制器

而軟體檢測則適用於所有的微控制器。

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

1、支援串列埠

stm32微控制器中只有下面這幾個系列支援abr:

而這幾個系列的微控制器中,也不是所有的串列埠都支援abr:

2、abr模式

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

三、軟體自動波特率檢測

軟體的檢測方法是:首先把rx引腳設定為輸入捕獲模式,然後讓對方傳送乙個位元組的資料(最好是0x7f),通過測量邊緣時間來計算波特率。

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

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

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

串列埠 波特率概念

波特率 系統中單位時間內傳輸的碼元 脈衝 個數。碼元 和進製有關,對於m進製碼元,位元率 資訊速率 rb與波特率 碼元速率 rb的關係式為 rb rb lbm。式中 lbm log2m,表示m的以2為底的對數。顯然,對於二進位制碼元,由於lb2 1,所以rb rb,即波特率與位元率在數 值上相等,但...

串列埠波特率等概念

1 位元率 9600bps 就是每秒中傳輸9600bit,也就是相當於每一秒中劃分成了9600等份。如此,那麼每1bit的時間就是1 9600秒 104.16666666666666666666666666667us。約0.1ms。既然是9600等份,即每1bit緊接著下乙個位元,不存在額外的間隔。...

串列埠波特率的理解

bit就是位,也叫位元位,是計算機中最小的單位 byte是位元組,也就是b 1位元組 byte 8位 bit 既 位只有兩種形式0和1,只能表示2種狀態,而位元組是有8個位組成的。可以表示256個狀態。1byte 8 bit,1kb 1024 byte,1mb 1024 kb,1g 1024 mb,...