在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

串口通訊實際的波特率測量

汽車玩家 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2020-04-04 17:27 ? 次閱讀

平時使用串口打印出現亂碼的絕大部分原因是串口波特率沒對。那么我們怎么測量實際的波特率呢?在這之前,順便一起回顧一下波特率的概念。

什么是波特率、比特率?

比特率(Bitrate)表示每秒鐘傳輸的二進制位數,單位為比特每秒(bit/s)。

波特率(Baudrate)表示每秒鐘傳送的碼元符號的個數,是衡量數據傳送速率的指標。

碼元是通訊信號調制的概念,通訊中常用時間間隔相同的符號來表示一個二進制數字,這樣的信號稱為碼元。

常見的通訊傳輸中,用 0V 表示數字 0, 5V 表示數字 1,那么一個碼元可以表示兩種狀態(tài) 0 和 1,所以一個碼元等于一個二進制比特位,此時波特率的大小與比特率一致。

如果在通訊傳輸中,有 0V、2V、 4V 以及 6V 分別表示二進制數 00、 01、 10、 11,那么每個碼元可以表示四種狀態(tài),即兩個二進制比特位,所以碼元數是二進制比特位數的一半,這個時候的波特率為比特率的一半。因為很多常見的通訊(比如串口通訊)中一個碼元都是表示兩種狀態(tài),所以大家常常直接以波特率來表示比特率 。

串口通訊協(xié)議

在串口通訊的協(xié)議層中,規(guī)定了數據包的內容,它由啟始位、主體數據、校驗位以及停止位組成,通訊雙方的數據包格式要約定一致才能正常收發(fā)數據,其數據幀組成如下:

串口通訊實際的波特率測量

下面我們來實際驗證一下其數據幀是不是真的是這樣的。編寫如下代碼:

串口通訊實際的波特率測量

代碼很簡單,就是使用串口不斷地往外發(fā)數據0xAA(當然發(fā)送其它數據也是可以的) 。我們的串口配置如下:

串口通訊實際的波特率測量

我們可以使用示波器或者邏輯分析儀抓取實際信號看看數據是不是符合上面的幀格式。這里,我們使用邏輯分析儀抓取USART1的發(fā)送信號線(TX):

串口通訊實際的波特率測量

從實際結果中我們可以看到的確是按幀格式來發(fā)的。這里可能會有人有疑問,上面那個數據幀的圖片中有個空閑狀態(tài),這個又是什么呢?空閑、空閑,當然是沒有在發(fā)數據時候的狀態(tài)呀,我們把我們的代碼改為:

串口通訊實際的波特率測量

在初始化完成之后只發(fā)送一次0xAA,邏輯分析儀抓到的數據為:

串口通訊實際的波特率測量

可見,空閑狀態(tài)是個高電平。在上一個的范例中,我們一直在while循環(huán)中發(fā)送數據0xAA,所以就沒有空閑狀態(tài)。

在這個實驗中我們需要知道的是兩個點是:

串口發(fā)送數據是低位先發(fā)的。我們單片機發(fā)0xAA(10101010B),所以邏輯分析儀抓到的有效數據是01010101B。

單片機的串口使用的是TTL電平,為正邏輯電平信號。邏輯分析儀抓到的數據0對應著實際電壓0~0.5V,數據1對應著實際電壓2.4V-5V,

經常與TTL電平標準做對比的是RS-232電平標準,如:

串口通訊實際的波特率測量

常見的電子電路中常使用 TTL 的電平標準,理想狀態(tài)下,使用 5V 表示二進制邏輯 1,使用 0V 表示邏輯 0;而為了增加串口通訊的遠距離傳輸及抗干擾能力,RS-232電平標準使用-15V 表示邏輯 1, +15V 表示邏輯 0。

在舊式的臺式計算機中一般會有 RS-232 標準的 COM 口(也稱 DB9 接口) :

在這個示例程序中,我們設置的串口波特率為115200bps。在串口通訊中,碼元只用1個二進制數來表示(即只有0 和 1兩種狀態(tài)),所以波特率與比特率在數值上是相等的。而比特率表示的是每秒鐘傳輸的二進制位數,那我們知道傳一位數據的時間豈不是就可以反推出波特率是多少了嗎?從邏輯分析儀中,我們可以知道發(fā)送一位數據的時間如下:

串口通訊實際的波特率測量

發(fā)送一位數據的時間大約為8.667us,所以1秒鐘發(fā)送多少位數據是可以算出來的:

算出來的波特率為115380bps,與115200bps很相近。最終肯定是有一定的誤差,這個誤差產生的原因包括邏輯分析儀的質量及我們的測量環(huán)境等等因素。但是這個誤差也是在允許的范圍內的,可以看看串口助手接收到的數據是不是正確的:

串口通訊實際的波特率測量

可見,數據接收正確,也就是波特率對的上了。

串口波特率對不上怎么解決?

在實際中。我們可能會遇到這樣的情況,代碼里配置的波特率與串口助手上設置的波特率一樣了,但還是出現異常。

異常情況如我們往串口助手發(fā)送字符串,串口助手上本該顯示的字符串出現了亂碼。或者我們往串口助手發(fā)送一個數據,發(fā)現數據移位了。

出這種情況大多是波特率對應不上,我們就得自己檢查我們的底層文件了,代碼中的某個與波特率計算相關的值(時鐘)與實際不匹配了,就會出現這樣的現象,比如之前我的一位同事就遇到這樣的情況就是這個原因導致的。

我們用STM32的時候,一般都是使用外部晶振,比如STM32F103系列,可輸入的外部晶振的范圍是4~16MHz:

串口通訊實際的波特率測量

經驗值往往是8MHz,而且一般的demo工程底層代碼里默認的也是設置為8MHz,比如:

串口通訊實際的波特率測量

但是,如果實際晶振貼的不是8MHz的話,就出問題了(比如串口波特率就不正確了)。追根溯源,串口波特率是配進USART_Init函數中的,打開這個函數:

串口通訊實際的波特率測量

計算串口波特率需要一個apbclock變量,而這個值得來源從RCC_GetClocksFreq函數來,再打開這個函數:

串口通訊實際的波特率測量

所以要注意的是,HSE_VALUE這個值要與實際做對應。

遇到這種問題找誰說理去。。經驗就是不斷采坑不斷積累的一個過程,早點遇到坑可能也是一件好事。像類似底層的問題很少遇到,但是一旦遇到那就得比較棘手的問題了,需要很有耐心地去查找。

能用穩(wěn)定的芯片是一件很幸福的事情,用不穩(wěn)定、不成熟的芯片的時候,那個才是真的難啊,真讓人懷疑人生啊。。。

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

    關注

    14

    文章

    1586

    瀏覽量

    79346
  • 波特率
    +關注

    關注

    2

    文章

    310

    瀏覽量

    34801
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    RS232通信的波特率設置說明

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

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

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

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

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

    常見的波特率標準和協(xié)議

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

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

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

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

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

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

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

    串口波特率是多少?

    波特率是多少
    發(fā)表于 11-05 15:40

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

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

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

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

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

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

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

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

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

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

    如何更改波特率

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

    485自動收發(fā)電路的波特率是多少

    485自動收發(fā)電路的波特率并不是一個固定的值,而是可以根據具體的應用需求和電路設計進行調整的。在實際應用中,波特率的設置會受到多種因素的影響,包括傳輸距離、信號衰減、噪音環(huán)境、設備性能以及通信協(xié)議
    的頭像 發(fā)表于 07-13 09:41 ?4615次閱讀
    主站蜘蛛池模板: a级精品九九九大片免费看 a级毛毛片看久久 | 国产看片视频 | 天堂资源在线最新版 | 一级特黄色片 | 国产成人精品1024在线 | 香蕉久久高清国产精品免费 | 午夜精品视频在线观看美女 | 日产国产精品亚洲系列 | 午夜高清在线观看免费6 | 老师在办公室被躁得舒服小说 | 毛片在线网站 | 国模视频一区二区 | 一级特黄a免费大片 | www.你懂的 | 国产亚洲美女精品久久久2020 | 国模论坛 | 狠狠做深爱婷婷综合一区 | 国产精品资源手机在线播放 | 成人午夜免费视频毛片 | 乱人伦的小说 | 视频高清正版在线观看 | 午夜影视在线视频观看免费 | 国产精品乳摇在线播放 | 日韩大胆 | 久久草精品 | 99在线国产 | 免费能直接在线观看黄的视频 | 久久久久久久久久久观看 | 日本欧美一区二区三区不卡视频 | 狠狠操精品视频 | 97玖玖 | 成人午夜免费视频 | 色在线免费 | 最新日韩中文字幕 | 国产手机在线 | 欧美18同性gay视频 | 亚洲伦理中文字幕一区 | 色视频免费看 | 精品美女在线 | 中文字幕成人乱码在线电影 | 欧美三四级片 |