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

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

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

3天內不再提示

串口波特率誤差產生的原因

CHANBAEK ? 來源:硬件工程師技術干貨 ? 作者:硬件工程師技術干 ? 2023-04-13 16:20 ? 次閱讀

1、UART接口

UART全稱Universal Asynchronous Receiver/Transmitter,通用異步收發器,是一種非常常見的異步收發協議,在嵌入式領域應用十分廣泛。收發雙方按照約定好通訊波特率進行配置,如果波特率不匹配會導致失敗。

2、分頻與波特率

使用單片機的朋友,經常使用4800、9600、38400、115200等波特率。設計電路時經常采用11.0592Mhz這樣“不規則”晶振,看起來不規則,實際上很規則,原因是可以精確分頻成常用波特率。

11.0592MHz=11059200=115200*96

11.0592MHz=11059200=57600*192

11.0592MHz=11059200=19200*576

有細心的朋友經常采用11.0592Mhz晶體設計電路,調試完串口通訊之后更換為12MHz后單片機依然能夠正常通訊,并沒有出現通訊異常。可見波特率有少許誤差也是能夠容忍的。

3、串口如何采樣

串口接收方,在收到起始位后,延時1.5個位周期進行第1位采樣,然后依次隔一個位周期采樣一位,直至把所有數據位采樣完成。如果接收方采樣位置正好在數據位的中間位置,那么采樣非常完美,不會出現問題。以下是8bit串口通訊數據格式示意圖。

注意,這里的采樣并不是只采樣一次,有些芯片會采樣多次,這里僅做示意。

4、誤差原因

如果接收方位周期略微大于發送方位周期,就會出現下圖所示的情況。采樣位置逐漸偏移數據位中心,bit7采樣位置偏移最嚴重。這就是波特率誤差。采樣點移位過多就會導致位錯誤,導致通訊失敗。當然如果接收方位周期略微小于發送方位周期,也是同樣道理。一般測特率誤差2%-3%是沒有問題的。

5、舉例

筆者正在使用的某款cortex-M3內核芯片,需求的波特率是460800bps。串口時鐘頻率是36MHz。此款芯片波特率配置方法是串口時鐘頻率除以16,再除以分頻因子。計算出分頻因子(分頻因子只能是整數),然后寫入相應寄存器即可。算來算去,無論如何計算都不能準確分頻出460800bps。按照如下代碼計算出的分頻因子是4。然后反推出波特率是562500bps,整除失去了小數位,導致差距巨大,根本無法通訊。

// baud rate = (serial clock freq) / (16 * divisor).
  tmpBaudRateDiv = (clocks.PCLK_Frequency / 16) / UART_InitStruct->UART_BaudRate;

于是乎做了個優化,如下代碼,計算出的分頻因子是5。然后反推出波特率是450,000bps,差距比較小,測試了一下通訊性能沒問題。

// baud rate = (serial clock freq) / (16 * divisor).
  tmpBaudRateDiv = ((clocks.PCLK_Frequency / 16) + UART_InitStruct->UART_BaudRate / 2) / UART_InitStruct->UART_BaudRate;

6、不建議串口高速使用

串口畢竟是一個低速的數據傳輸協議,這種異步傳輸,沒有時鐘同步信號,在傳輸的每個字節中采樣有誤差積累,不建議高速使用,筆者使用過幾種高波特率460800、921600、1500000等。原因是低端的單片機主頻速率較低,處理高速數據流效率低下,如需高速使用,可根據自己需求開啟串口FIFO、串口DMA、串口流控等。

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

    關注

    5090

    文章

    19176

    瀏覽量

    306897
  • 晶振
    +關注

    關注

    34

    文章

    2899

    瀏覽量

    68221
  • 串口
    +關注

    關注

    14

    文章

    1557

    瀏覽量

    76870
  • uart
    +關注

    關注

    22

    文章

    1243

    瀏覽量

    101641
  • 波特率
    +關注

    關注

    2

    文章

    308

    瀏覽量

    34240
收藏 人收藏

    評論

    相關推薦

    STM32串口波特率大小計算案例

    波特率的計算 STM32下的波特率串口外設時鐘息息相關,USART 1的時鐘來源于APB2,USART 2-5的時鐘來源于APB1。在STM32中,有個波特率寄存器USART_BRR
    的頭像 發表于 10-23 14:19 ?8429次閱讀
    STM32<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>大小計算案例

    什么是串口波特率串口波特率的分類及應用詳解

    什么是串口波特率串口波特率是指串口通信系統中傳輸數據的速率。在UART串口通信中,數據以位(bi
    的頭像 發表于 08-08 10:09 ?6131次閱讀
    什么是<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>?<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>的分類及應用詳解

    串口波特率計算工具下載

    串口波特率計算工具
    發表于 03-11 09:38 ?179次下載

    C Core芯片SCI串口波特率容限優化

    發現了C*Core國芯芯片中SCI發送與接受方波特率誤差導致數據不匹配問題,分析了發送與接受方數據傳輸丟幀、誤幀現象出現的根本原因,總結了SCI容限值與芯片主頻及標準波特率之間規
    發表于 03-05 17:45 ?17次下載
    C Core芯片SCI<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>容限優化

    串行通信的實現條件和波特率自動整定問題

    串行通信在波特率誤差超過一定范圍時,會產生錯誤。本節介紹的內容在51單片機上僅用軟件就實現了波特率自動整定,最大程度地減小了波特率
    發表于 03-23 14:52 ?3975次閱讀
    串行通信的實現條件和<b class='flag-5'>波特率</b>自動整定問題

    STM32的串口自動識別波特率

    STM32串口自動識別波特率
    的頭像 發表于 03-04 09:53 ?9831次閱讀

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

    平時使用串口打印出現亂碼的絕大部分原因串口波特率沒對。那么我們怎么測量實際的波特率呢?在這之前,順便一起回顧一下
    的頭像 發表于 04-04 17:27 ?7286次閱讀
    <b class='flag-5'>串口</b>通訊實際的<b class='flag-5'>波特率</b>測量

    串口波特率計算詳解

    STM32下波特率計算詳解波特率的計算????STM32下的波特率串口外設時鐘息息相關,USART 1的時鐘來源于APB2,USART 2-5的時鐘來源于APB1。在STM32中,有
    發表于 12-05 09:06 ?22次下載
    <b class='flag-5'>串口</b><b class='flag-5'>波特率</b>計算詳解

    串口通訊波特率出現誤差的因素

    串口通訊(UART)是一種異步通訊,收發雙方需要按照約定的波特率進行通訊。當波特率出現誤差時,會導致通訊出錯。那導致波特率出現
    的頭像 發表于 07-03 17:40 ?1w次閱讀

    波特率是什么?波特率設計

    從宏觀理解,波特率表征了串口的傳輸速度。
    的頭像 發表于 06-05 15:19 ?2.7w次閱讀
    <b class='flag-5'>波特率</b>是什么?<b class='flag-5'>波特率</b>設計

    什么是波特率?為什么要設置波特率

    歡迎來到東用知識小課堂!一、什么是波特率波特率(BaudRate)單位bps是用于衡量串口通信速度的單位,它表示每秒鐘發送的比特數。如果一個串口
    的頭像 發表于 04-08 00:00 ?7077次閱讀
    什么是<b class='flag-5'>波特率</b>?為什么要設置<b class='flag-5'>波特率</b>?

    串口傳輸速率低于波特率怎么辦 串口通信的波特率如何設置

    如果串口傳輸速率低于波特率,您可以嘗試以下方法來解決問題:   1. 檢查硬件連接:確保串口連接正確且牢固。檢查連接線是否完好,確保沒有松動或斷開的接觸。   2. 檢查波特率設置
    的頭像 發表于 09-08 16:23 ?6449次閱讀

    什么是串口波特率串口通信為什么要設置波特率

    在電子設備的世界中,數據是通過各種方式進行傳輸的。其中,串口通信是一種常見的數據傳輸方式,它以其簡單、可靠和廣泛的特性,成為了電子設備間通信的重要手段。而在串口通信中,有一個非常重要的參數——波特率
    的頭像 發表于 11-03 08:21 ?5495次閱讀
    什么是<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>?<b class='flag-5'>串口</b>通信為什么要設置<b class='flag-5'>波特率</b>?

    什么是串口波特率串口通信為什么要設置波特率

    什么是串口波特率串口通信為什么要設置波特率波特率與比特的關系 如何選擇
    的頭像 發表于 01-22 16:10 ?2309次閱讀

    如何使用示波器測量串口波特率

    在通信和電子測量領域,串口波特率是一個至關重要的參數,它決定了數據在串行通信線上的傳輸速率。使用示波器來測量串口波特率是一種常見且有效的方法,尤其是在沒有專業
    的頭像 發表于 05-27 16:25 ?5426次閱讀
    主站蜘蛛池模板: 又爽又黄又粗又大免费视频 | 久久www免费人成高清 | 熟女啪啪白浆嗷嗷叫 | 亚洲国产成人精品无码区5566 | 高清欧美videos sexo | 亚洲国产精品一区二区第一页 | 怡春院国产精品视频 | 婷婷射精AV这里只有精品 | 69精品人人人人 | 欧美丰满熟妇无码XOXOXO | 色偷偷男人| 亚洲欧美高清在线精品一区 | 麻豆E奶女教师国产精品 | 成人1000部免费观看视频 | 邻家美姨在线观看全集免费 | a级男女性高爱潮高清试看 A级毛片无码久久精品免费 | 嫩草影院在线观看精品视频 | 最近日本字幕MV免费观看在线 | 天天综合亚洲综合网站 | 免费精品国产日韩热久久 | JAPANBABES11学生老师 | 少妇高潮久久久久7777 | 千禧金瓶梅快播 | 99精品亚洲 | 久久国产精品久久国产精品 | 亚洲AV无码久久流水呻蜜桃久色 | 欧美另类老女人 | 一个人免费观看在线视频播放 | 阿离被扒开双腿疯狂输出 | 国产精品午夜小视频观看 | 超碰免费视频公开97 | 曰本少妇高潮久久久久久 | 超碰caoporon最新视频 | 9久久99久久久精品齐齐综合色圆 | 精品久久久久久久99热 | 99久久精品国内 | 美女被C污黄网站免费观看 美女白虎穴 | 亚洲1区2区3区精华液 | 日韩精品AV一区二区三区 | 十分钟免费观看高清视频大全 | 人妻无码AV中文系列 |