色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32的串口自動識別波特率

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 作者:黃工的嵌入式技術 ? 2020-03-04 09:53 ? 次閱讀

最近有朋友問關于UART串口自動識別波特率的問題,今天就在這里寫點相關內容。

1寫在前面

關于自動識別UART串口波特率的這個問題,相信有項目經驗,或者認真研究過串口的朋友都應該多多少少知道一點自動識別的方法。

可能絕大部分知道的就是通過波特率一一匹配來實現,這種方法也是最常見,而且還比較有效的一種方法。

上面這種方法就是大家熟知的通過軟件來檢測波特率的方法,其實,還有一種方法就是通過硬件自身完成波特率來檢測。

針對STM32,在ST官方其實在應用筆記和參考手冊文檔中都有提到。下面,我結合文檔簡單講下硬件自動波特率檢測的內容。

2

STM32硬件自動波特率檢測

ABR:Auto Baud Rate,自動波特率檢測使接收設備能夠接受來自各種以不同速率工作的發送設備的數據,無需事先建立數據速率。

1.ABR應用地方

事先不知道系統的通信速度。

系統正在使用精確度相對較低的時鐘源且該機制允許在不測量時鐘偏差的情況下獲得正確的波特率。

2.支持ABR系列

在STM32中,支持硬件自動波特率檢測的只有部門系列才支持,之前出來比較早的系列不支持(如F1 F4),這后面推出來的系列都支持這個功能,包含最新才出來的STM32H7、G0系列都支持。

當然,對于內置ABR的STM32系列設備而言,并非所有實例化USART接口均支持自動波特率檢測。

3.自動波特率檢測模式

ABR是指接收設備通過檢查第一個字符(通常是預先選擇的標志字符)確定傳入數據速率的過程。

STM32產品上的自動波特率檢測功能內置的各種模式基于不同字符模式:

模式0:以“1”位為開頭的任意字符;

模式1:以10xx模式開頭的任何字符;

模式2:0x7F;

模式3:0x55;

提示:

A.在所有ABR模式下,都會在同步數據接收期間多次檢測波特率,并將每一次的檢測值與上一次的檢測值進行比較。

B.在7位數據長度模式下,不支持0x7F和0x55幀檢測ABR模式。

4.代碼配置

相關代碼,官方提供有基于(標準外設庫、HAL庫的)參考例程,比如F0標準外設庫參考代碼:

static void AutoBauRate_StartBitMethod(void){ /* USART enable */ USART_Cmd(EVAL_COM1, ENABLE); /* Configure the AutoBaudRate method */ USART_AutoBaudRateConfig(EVAL_COM1, USART_AutoBaudRate_StartBit); /* Enable AutoBaudRate feature */ USART_AutoBaudRateCmd(EVAL_COM1, ENABLE); /* Wait until Receive enable acknowledge flag is set */ while(USART_GetFlagStatus(EVAL_COM1, USART_FLAG_REACK) == RESET) {} /* Wait until Transmit enable acknowledge flag is set */ while(USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TEACK) == RESET) {} /* Loop until the end of Autobaudrate phase */ while(USART_GetFlagStatus(EVAL_COM1, USART_FLAG_ABRF) == RESET) {} /* If AutoBaudBate error occurred */ if (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_ABRE) != RESET) { /* Turn on LED3 */ STM_EVAL_LEDOn(LED3); } else { /* Turn on LED2 */ STM_EVAL_LEDOn(LED2); /* Wait until RXNE flag is set */ while(USART_GetFlagStatus(EVAL_COM1, USART_FLAG_RXNE) == RESET) {} /* Wait until TXE flag is set */ while(USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TXE) == RESET) {} /* Send received character */ USART_SendData(EVAL_COM1, USART_ReceiveData(EVAL_COM1)); /* clear the TE bit (if a transmission is on going or a data is in the TDR, it will be sent before efectivelly disabling the transmission) */ USART_DirectionModeCmd(EVAL_COM1, USART_Mode_Tx, DISABLE); /* Check the Transfer Complete Flag */ while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET) {} } /* USART Disable */ USART_Cmd(EVAL_COM1, DISABLE);}

5.ABR誤差計算

由USART時鐘源( fCK)決定通信速率范圍(尤其是最大通信速率)。接收器采用不同的用戶可配置過采樣技術,可區分有效輸入數據和噪聲,從而用于恢復數據。這可以在最大通信速率與抗噪聲/時鐘不準確性之間實現平衡。

可通過編程USARTx_CR1寄存器中的OVER8位來選擇過采樣方法,可以是波特率時鐘的16倍或8倍。

USART時鐘源頻率必須與預期通信速率兼容:

? 16倍過采樣時,波特率介于fCK/65535與fCK/16之間。

? 8倍過采樣時,波特率介于fCK/65535與fCK/8之間。

波特率誤差取決于USART時鐘源、過采樣方法和ABR模式。

其中:

? 預期波特率取決于發送設備

? 實際波特率是USART接收器使用自動波特率檢測操作確定的波特率。

6.誤差

下圖來自官方測試數據,基于:fCK = 72 MHz時ABR的誤差計算,115200 bits/s預期波特率

從上圖可以看出:ABR模式2和3的精確度高于模式0和1;它們的波特率誤差值更低。

不過,由于預期波特率與實際波特率之間的誤差小于1%,因此所有模式的結果均正常。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2290

    文章

    11017

    瀏覽量

    362640
  • uart
    +關注

    關注

    22

    文章

    1269

    瀏覽量

    103346
  • 波特率
    +關注

    關注

    2

    文章

    310

    瀏覽量

    34749
  • 代碼
    +關注

    關注

    30

    文章

    4891

    瀏覽量

    70301
收藏 0人收藏
  • 快帅酷19801

評論

相關推薦
熱點推薦

RS232通信的波特率設置說明

RS232通信的波特率設置是確保數據正確傳輸的關鍵參數之一。以下是對RS232通信波特率設置的說明: 一、波特率的概念 波特率是指每秒傳輸的比特數(bps),是衡量數據傳輸速度的重要指
的頭像 發表于 12-10 16:26 ?3824次閱讀

波特率設置中的常見問題解析

在數字通信系統中,波特率是一個關鍵參數,它直接影響數據傳輸的效率和可靠性。然而,在實際應用中,波特率的設置往往會引起一些常見的問題。 一、波特率與數據速率的混淆 問題描述: 許多人會將波特率
的頭像 發表于 11-22 10:06 ?1474次閱讀

波特率與串行通信的關系 各種設備波特率轉換的方法

波特率(Baud Rate)是串行通信中的一個重要參數,它指的是信號傳輸的速率,即單位時間內傳輸的符號(或信號狀態)的數量。在串行通信中,波特率決定了數據傳輸的速度,因此對于通信效率和設備兼容性
的頭像 發表于 11-22 10:01 ?1497次閱讀

常見的波特率標準和協議

波特率是指在數據通信中,每秒鐘傳輸的符號數(或比特數),是衡量數據通信速度的重要指標。在不同的通信協議和場景中,常見的波特率標準和協議有所不同。以下是一些常見的波特率標準和協議: 一、串口
的頭像 發表于 11-22 09:56 ?5399次閱讀

Wi-Fi與藍牙的波特率對比分析

Wi-Fi與藍牙是兩種不同的無線通信技術,它們在波特率(或稱數據傳輸速率)方面存在顯著的差異。以下是對Wi-Fi與藍牙波特率的對比分析: 一、Wi-Fi的波特率 概述 : Wi-Fi(無線局域網
的頭像 發表于 11-22 09:54 ?1631次閱讀

波特率設置在串口通信中的重要性

在現代通信技術中,串口通信作為一種基本的數據傳輸方式,扮演著不可或缺的角色。無論是在計算機與外部設備的連接,還是在工業自動化系統中的數據交換,串口通信都發揮著重要作用。波特率,作為
的頭像 發表于 11-22 09:51 ?2699次閱讀

波特率的定義和計算方法 波特率與數據傳輸速度的關系

波特率的定義 波特率(Baud Rate),又稱調制速率或傳符號,是指每秒傳輸的符號數目,單位為波特(Bd)。它是一個數字信號通信中重要的參數,在串行通信協議中經常被用作衡量串行數據
的頭像 發表于 11-22 09:49 ?8376次閱讀

串口波特率是多少?

波特率是多少
發表于 11-05 15:40

MCU串口自動識別波特率原理分析

現在的單片機資源越來越豐富了,其中我們常用的串口也是內部集成了多個,關鍵功能也越來越強了。 我們有些應用可能會用到串口自動識別波特率,今天就來講講MCU
的頭像 發表于 10-23 16:12 ?1865次閱讀
MCU<b class='flag-5'>串口</b><b class='flag-5'>自動識別</b><b class='flag-5'>波特率</b>原理分析

波特率9600和115200的區別

在現代通信技術中,數據傳輸速率是一個關鍵的性能指標。對于串行通信,波特率是衡量數據傳輸速度的基本單位。波特率9600和115200是兩種常見的設置,它們在不同的應用場景中有著各自的優勢和局
的頭像 發表于 10-18 14:56 ?5091次閱讀

波特率與比特有何關系 波特率與數據傳輸速率的關系

波特率(Baud Rate)和比特(Bit Rate)是衡量數據通信系統性能的兩個重要參數,它們之間有著密切的關系,但并不完全相同。 波特率(Baud Rate): 波特率是指在數據
的頭像 發表于 10-18 14:55 ?2318次閱讀

uart波特率和傳輸頻率的關系 UART串口的常用波特率為多少

頻率是兩個關鍵參數,它們之間存在一定的關系,并且UART串口有一系列常用的波特率。以下是對這兩個概念的介紹。 一、UART波特率和傳輸頻率的關系 1. 定義與區別 波特率(Baud R
的頭像 發表于 10-06 16:12 ?6408次閱讀
uart<b class='flag-5'>波特率</b>和傳輸頻率的關系 UART<b class='flag-5'>串口</b>的常用<b class='flag-5'>波特率</b>為多少

串口通信中的波特率你真的了解嗎?差距竟如此重要!

波特率串口通信中的作用在串口通信中,波特率起著至關重要的作用。因為在傳輸數據時,發送方和接收方需要以相同的波特率進行通信。如果兩端的
的頭像 發表于 08-27 11:46 ?2784次閱讀
<b class='flag-5'>串口</b>通信中的<b class='flag-5'>波特率</b>你真的了解嗎?差距竟如此重要!

如何更改波特率

我正在嘗試使用與此文檔相關的命令更改波特率:https://github.com/Arduinolibrary/DFRob ... _v0.23.pdf 這是固件版本:00200.9.4 當我
發表于 07-16 06:10

485自動收發電路的波特率是多少

485自動收發電路的波特率并不是一個固定的值,而是可以根據具體的應用需求和電路設計進行調整的。在實際應用中,波特率的設置會受到多種因素的影響,包括傳輸距離、信號衰減、噪音環境、設備性能以及通信協議
的頭像 發表于 07-13 09:41 ?4528次閱讀
主站蜘蛛池模板: 久久re热在线视频精99 | 久久国语露脸精品国产 | 久久国语露脸精品国产 | 亚洲精品有码在线观看 | 女人吃男人的鸡鸡 | SAO货腿张开JI巴CAO死我 | 99精品视频在线 | 成人亚洲精品 | AV色蜜桃一区二区三区 | 色综合久久88色综合天天提莫 | 国产成人精品久久一区二区三区 | 欧美一区二区高清 | 韩国女人高潮嗷嗷叫视频 | 人妻中文字幕无码系列 | 69国产精品人妻无码免费 | 亚洲熟少妇在线播放999 | 亚洲二区电影 | 伊人久久影视 | 海角国精产品一区一区三区糖心 | 99久久免费看国产精品 | 亚洲 欧美 视频 手机在线 | 一二三区乱码不卡手机版 | 国内精自品线一区91 | 在线亚洲国产日韩欧洲专区 | bl 纯肉 高Hbl被强文 | 在线精品国精品国产不卡 | 奶头从情趣内衣下露了出来AV | 精品国产麻豆免费人成网站 | 久久精品国产亚洲AV影院 | 成年人在线免费观看视频网站 | 中文字幕一区二区视频 | 免费成人高清在线视频 | 日韩在线 无码 精品 | 天天影视色欲 影视 | 久久99精品久久久久久园产越南 | 999久久精品国产 | 国产精品一区二区在线播放 | 蜜桃传媒视频 | 国产伊人久久 | 思思久久99热只有频精品66 | 日本久久和电影 |

電子發燒友

中國電子工程師最喜歡的網站

  • 2931785位工程師會員交流學習
  • 獲取您個性化的科技前沿技術信息
  • 參加活動獲取豐厚的禮品