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

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

完善資料讓更多小伙伴認識你,還能領取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后單片機依然能夠正常通訊,并沒有出現通訊異常??梢姴ㄌ芈视猩僭S誤差也是能夠容忍的。

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、串口流控等。

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

    關注

    5143

    文章

    19575

    瀏覽量

    315708
  • 晶振
    +關注

    關注

    35

    文章

    3221

    瀏覽量

    69718
  • 串口
    +關注

    關注

    14

    文章

    1586

    瀏覽量

    79280
  • uart
    +關注

    關注

    22

    文章

    1273

    瀏覽量

    103443
  • 波特率
    +關注

    關注

    2

    文章

    310

    瀏覽量

    34790
收藏 0人收藏
  • jf_980610271

評論

相關推薦
熱點推薦

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

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

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

什么是串口波特率串口波特率是指串口通信系統中傳輸數據的速率。在UART串口通信中,數據以位(bi
的頭像 發表于 08-08 10:09 ?6903次閱讀
什么是<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 ?4198次閱讀
串行通信的實現條件和<b class='flag-5'>波特率</b>自動整定問題

STM32的串口自動識別波特率

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

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

平時使用串口打印出現亂碼的絕大部分原因串口波特率沒對。那么我們怎么測量實際的波特率呢?在這之前,順便一起回顧一下
的頭像 發表于 04-04 17:27 ?7659次閱讀
<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 ?1.1w次閱讀

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

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

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

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

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

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

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

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

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

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

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

在通信和電子測量領域,串口波特率是一個至關重要的參數,它決定了數據在串行通信線上的傳輸速率。使用示波器來測量串口波特率是一種常見且有效的方法,尤其是在沒有專業
的頭像 發表于 05-27 16:25 ?7212次閱讀
主站蜘蛛池模板: 男人就爱吃这套下载 | 亚洲不卡视频在线观看 | 亚洲欧美日韩高清专区 | 免费人成在线观看网站视频 | 人人爽久久久噜噜噜丁香AV | 色综合久久久久久 | 九九99热久久999精品 | 精品无码国产自产在线观看水浒传 | 最近2019中文字幕免费 | 国产一区2区 | 性肥胖BWBWBW| 又紧又大又爽精品一区二区 | 日韩精品 电影一区 亚洲高清 | 国产精品欧美久久久久天天影视 | 99久久免费国产精精品 | 扒开女人下面使劲桶视频 | 波多野结衣教师系列6 | 忘忧草直播 | 成人在线免费视频播放 | 99精品小视频 | 亚洲免费国产在线日韩 | 91麻豆国产精品91久久久 | 草699一码二码三码四码 | 国产成人在线观看网站 | 超碰免费视频公开97 | 午夜AV亚洲一码二中文字幕青青 | 父亲猜女儿在线观看 | 暖暖免费观看日本在线视频 | 草莓视频在线观看完整高清免费 | 国内精品偷拍在线观看 | 脔到她哭H粗话HWWW男男动漫 | 黄色大片aa| 秋霞成人午夜鲁丝一区二区三区 | 秀婷程仪公欲息肉婷在线观看 | 天天国产在线精品亚洲 | 91精品国产色综合久久不 | 交换年轻夫妇HD中文字幕 | 成人在线视频观看 | 无码乱人伦一区二区亚洲一 | 国产亚洲精品久久久久久线投注 | 好男人社区 |

電子發燒友

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

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