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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32的串口自動(dòng)識(shí)別波特率

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-03-04 09:53 ? 次閱讀

最近有朋友問(wèn)關(guān)于UART串口自動(dòng)識(shí)別波特率的問(wèn)題,今天就在這里寫(xiě)點(diǎn)相關(guān)內(nèi)容。

1寫(xiě)在前面

關(guān)于自動(dòng)識(shí)別UART串口波特率的這個(gè)問(wèn)題,相信有項(xiàng)目經(jīng)驗(yàn),或者認(rèn)真研究過(guò)串口的朋友都應(yīng)該多多少少知道一點(diǎn)自動(dòng)識(shí)別的方法。

可能絕大部分知道的就是通過(guò)波特率一一匹配來(lái)實(shí)現(xiàn),這種方法也是最常見(jiàn),而且還比較有效的一種方法。

上面這種方法就是大家熟知的通過(guò)軟件來(lái)檢測(cè)波特率的方法,其實(shí),還有一種方法就是通過(guò)硬件自身完成波特率來(lái)檢測(cè)。

針對(duì)STM32,在ST官方其實(shí)在應(yīng)用筆記和參考手冊(cè)文檔中都有提到。下面,我結(jié)合文檔簡(jiǎn)單講下硬件自動(dòng)波特率檢測(cè)的內(nèi)容。

2

STM32硬件自動(dòng)波特率檢測(cè)

ABR:Auto Baud Rate,自動(dòng)波特率檢測(cè)使接收設(shè)備能夠接受來(lái)自各種以不同速率工作的發(fā)送設(shè)備的數(shù)據(jù),無(wú)需事先建立數(shù)據(jù)速率。

1.ABR應(yīng)用地方

事先不知道系統(tǒng)的通信速度。

系統(tǒng)正在使用精確度相對(duì)較低的時(shí)鐘源且該機(jī)制允許在不測(cè)量時(shí)鐘偏差的情況下獲得正確的波特率。

2.支持ABR系列

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

當(dāng)然,對(duì)于內(nèi)置ABR的STM32系列設(shè)備而言,并非所有實(shí)例化USART接口均支持自動(dòng)波特率檢測(cè)。

3.自動(dòng)波特率檢測(cè)模式

ABR是指接收設(shè)備通過(guò)檢查第一個(gè)字符(通常是預(yù)先選擇的標(biāo)志字符)確定傳入數(shù)據(jù)速率的過(guò)程。

STM32產(chǎn)品上的自動(dòng)波特率檢測(cè)功能內(nèi)置的各種模式基于不同字符模式:

模式0:以“1”位為開(kāi)頭的任意字符;

模式1:以10xx模式開(kāi)頭的任何字符;

模式2:0x7F;

模式3:0x55;

提示:

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

B.在7位數(shù)據(jù)長(zhǎng)度模式下,不支持0x7F和0x55幀檢測(cè)ABR模式。

4.代碼配置

相關(guān)代碼,官方提供有基于(標(biāo)準(zhǔn)外設(shè)庫(kù)、HAL庫(kù)的)參考例程,比如F0標(biāo)準(zhǔn)外設(shè)庫(kù)參考代碼:

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誤差計(jì)算

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

可通過(guò)編程USARTx_CR1寄存器中的OVER8位來(lái)選擇過(guò)采樣方法,可以是波特率時(shí)鐘的16倍或8倍。

USART時(shí)鐘源頻率必須與預(yù)期通信速率兼容:

? 16倍過(guò)采樣時(shí),波特率介于fCK/65535與fCK/16之間。

? 8倍過(guò)采樣時(shí),波特率介于fCK/65535與fCK/8之間。

波特率誤差取決于USART時(shí)鐘源、過(guò)采樣方法和ABR模式。

其中:

? 預(yù)期波特率取決于發(fā)送設(shè)備

? 實(shí)際波特率是USART接收器使用自動(dòng)波特率檢測(cè)操作確定的波特率。

6.誤差

下圖來(lái)自官方測(cè)試數(shù)據(jù),基于:fCK = 72 MHz時(shí)ABR的誤差計(jì)算,115200 bits/s預(yù)期波特率

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

不過(guò),由于預(yù)期波特率與實(shí)際波特率之間的誤差小于1%,因此所有模式的結(jié)果均正常。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10895

    瀏覽量

    355740
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1235

    瀏覽量

    101354
  • 波特率
    +關(guān)注

    關(guān)注

    2

    文章

    307

    瀏覽量

    34115
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4779

    瀏覽量

    68524
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RS232通信的波特率設(shè)置說(shuō)明

    RS232通信的波特率設(shè)置是確保數(shù)據(jù)正確傳輸?shù)年P(guān)鍵參數(shù)之一。以下是對(duì)RS232通信波特率設(shè)置的說(shuō)明: 一、波特率的概念 波特率是指每秒傳輸?shù)谋忍財(cái)?shù)(bps),是衡量數(shù)據(jù)傳輸速度的重要指
    的頭像 發(fā)表于 12-10 16:26 ?494次閱讀

    波特率與串行通信的關(guān)系 各種設(shè)備波特率轉(zhuǎn)換的方法

    波特率(Baud Rate)是串行通信中的一個(gè)重要參數(shù),它指的是信號(hào)傳輸?shù)乃俾剩磫挝粫r(shí)間內(nèi)傳輸?shù)姆?hào)(或信號(hào)狀態(tài))的數(shù)量。在串行通信中,波特率決定了數(shù)據(jù)傳輸?shù)乃俣龋虼藢?duì)于通信效率和設(shè)備兼容性
    的頭像 發(fā)表于 11-22 10:01 ?297次閱讀

    常見(jiàn)的波特率標(biāo)準(zhǔn)和協(xié)議

    波特率是指在數(shù)據(jù)通信中,每秒鐘傳輸?shù)姆?hào)數(shù)(或比特?cái)?shù)),是衡量數(shù)據(jù)通信速度的重要指標(biāo)。在不同的通信協(xié)議和場(chǎng)景中,常見(jiàn)的波特率標(biāo)準(zhǔn)和協(xié)議有所不同。以下是一些常見(jiàn)的波特率標(biāo)準(zhǔn)和協(xié)議: 一、串口
    的頭像 發(fā)表于 11-22 09:56 ?939次閱讀

    波特率設(shè)置在串口通信中的重要性

    在現(xiàn)代通信技術(shù)中,串口通信作為一種基本的數(shù)據(jù)傳輸方式,扮演著不可或缺的角色。無(wú)論是在計(jì)算機(jī)與外部設(shè)備的連接,還是在工業(yè)自動(dòng)化系統(tǒng)中的數(shù)據(jù)交換,串口通信都發(fā)揮著重要作用。波特率,作為
    的頭像 發(fā)表于 11-22 09:51 ?428次閱讀

    波特率的定義和計(jì)算方法 波特率與數(shù)據(jù)傳輸速度的關(guān)系

    波特率的定義 波特率(Baud Rate),又稱(chēng)調(diào)制速率或傳符號(hào),是指每秒傳輸?shù)姆?hào)數(shù)目,單位為波特(Bd)。它是一個(gè)數(shù)字信號(hào)通信中重要的參數(shù),在串行通信協(xié)議中經(jīng)常被用作衡量串行數(shù)據(jù)
    的頭像 發(fā)表于 11-22 09:49 ?1060次閱讀

    MCU串口自動(dòng)識(shí)別波特率原理分析

    現(xiàn)在的單片機(jī)資源越來(lái)越豐富了,其中我們常用的串口也是內(nèi)部集成了多個(gè),關(guān)鍵功能也越來(lái)越強(qiáng)了。 我們有些應(yīng)用可能會(huì)用到串口自動(dòng)識(shí)別波特率,今天就來(lái)講講MCU
    的頭像 發(fā)表于 10-23 16:12 ?517次閱讀
    MCU<b class='flag-5'>串口</b><b class='flag-5'>自動(dòng)識(shí)別</b><b class='flag-5'>波特率</b>原理分析

    波特率9600和115200的區(qū)別

    在現(xiàn)代通信技術(shù)中,數(shù)據(jù)傳輸速率是一個(gè)關(guān)鍵的性能指標(biāo)。對(duì)于串行通信,波特率是衡量數(shù)據(jù)傳輸速度的基本單位。波特率9600和115200是兩種常見(jiàn)的設(shè)置,它們?cè)诓煌膽?yīng)用場(chǎng)景中有著各自的優(yōu)勢(shì)和局
    的頭像 發(fā)表于 10-18 14:56 ?1417次閱讀

    uart波特率和傳輸頻率的關(guān)系 UART串口的常用波特率為多少

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

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

    波特率串口通信中的作用在串口通信中,波特率起著至關(guān)重要的作用。因?yàn)樵趥鬏敂?shù)據(jù)時(shí),發(fā)送方和接收方需要以相同的波特率進(jìn)行通信。如果兩端的
    的頭像 發(fā)表于 08-27 11:46 ?1378次閱讀
    <b class='flag-5'>串口</b>通信中的<b class='flag-5'>波特率</b>你真的了解嗎?差距竟如此重要!

    如何使用示波器測(cè)量串口波特率

    在通信和電子測(cè)量領(lǐng)域,串口波特率是一個(gè)至關(guān)重要的參數(shù),它決定了數(shù)據(jù)在串行通信線(xiàn)上的傳輸速率。使用示波器來(lái)測(cè)量串口波特率是一種常見(jiàn)且有效的方法,尤其是在沒(méi)有專(zhuān)業(yè)
    的頭像 發(fā)表于 05-27 16:25 ?4902次閱讀

    KT142C語(yǔ)音芯片工作電壓多少?電流是多少?串口波特率多少?多大的喇叭?

    KT142C-sop16語(yǔ)音芯片ic工作電壓多少?電流是多少?串口波特率是多少?支持多大的喇叭?
    的頭像 發(fā)表于 05-23 09:45 ?465次閱讀
    KT142C語(yǔ)音芯片工作電壓多少?電流是多少?<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>多少?多大的喇叭?

    stm32mp157在linux系統(tǒng)下,串口波特率如何使用非標(biāo)準(zhǔn)波特率

    請(qǐng)問(wèn)stm32mp157在linux系統(tǒng)下,串口波特率如何使用非標(biāo)準(zhǔn)波特率153600。內(nèi)核或者設(shè)備樹(shù)里需要怎么改動(dòng)? 麻煩答復(fù)一下,最好能給個(gè)詳細(xì)的更改示例,謝謝!
    發(fā)表于 03-14 06:21

    為啥要轉(zhuǎn)換波特率 波特率和傳輸速率的關(guān)系

    對(duì)于串行多主 CAN 總線(xiàn),如果波特率被稱(chēng)為“500000波特”,則 CAN 上的該端口每秒最多可傳輸500000位。
    的頭像 發(fā)表于 03-06 17:38 ?5002次閱讀
    為啥要轉(zhuǎn)換<b class='flag-5'>波特率</b> <b class='flag-5'>波特率</b>和傳輸速率的關(guān)系

    波特率發(fā)生器使用哪個(gè)定時(shí)器 波特率發(fā)生器的時(shí)鐘來(lái)源是什么

    波特率發(fā)生器是一種用于控制串行數(shù)據(jù)通信速率的設(shè)備,它可以生成特定波特率的時(shí)鐘信號(hào)。在嵌入式系統(tǒng)、通信設(shè)備和計(jì)算機(jī)硬件中,波特率發(fā)生器的使用十分常見(jiàn)。波特率發(fā)生器通常使用定時(shí)器來(lái)實(shí)現(xiàn)時(shí)鐘
    的頭像 發(fā)表于 01-24 09:56 ?2152次閱讀

    什么是串口波特率串口通信為什么要設(shè)置波特率

    什么是串口波特率串口通信為什么要設(shè)置波特率波特率與比特的關(guān)系 如何選擇
    的頭像 發(fā)表于 01-22 16:10 ?2144次閱讀
    主站蜘蛛池模板: 奶头好翘是不是想要了| 午夜伦yy44880影院| 伊人久久大香线蕉综合99| 国产视频精品免费| 四虎永久在线精品国产| www.av在线| CHINESE熟女老女人HD视频| 快播官方网站| 999久久久无码国产精蜜柚| 麻豆国产99在线中文| 2021国产精品一卡2卡三卡4卡| 久久久午夜精品福利内容| 亚洲精品一二三| 久草青青在线| 最新无码国产在线视频| 恋老视频 国产国佬| 87.6在线收听| 欧美 日韩 无码 有码 在线| 99久久国产露脸精品麻豆| 欧美16一17sex性hd| yellow日本动漫观看免费| 情欲.美女高潮| 国产91网站在线观看免费| 亚洲高清毛片一区二区| 久久999视频| 99婷婷久久精品国产一区二区| 翘臀后进美女白嫩屁股视频| 国产69精品久久久熟女| 亚洲精品午夜VA久久成人| 啦啦啦 中文 中国 免费 高清在线| 777EY_卡通动漫_1页| 三级黄色视屏| 久久国产精品久久国产精品| 99国产这里只有精品视频| 日韩hd高清xxxⅹ| 精品久久电影网| ppypp午夜限制不卡影院私人| 天美麻豆成人AV精品| 久久国产精品免费A片蜜芽| av淘宝 在线观看| 亚洲AV 无码AV 中文字幕|