<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)串口的波特率設(shè)置

          AVR單片機(jī)串口的波特率設(shè)置

          作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò) 收藏
          公司有一款產(chǎn)品要實(shí)現(xiàn)通過(guò)串口更新開機(jī)畫面的功能。產(chǎn)品用的是AVR的ATmega8單片機(jī),配有兩個(gè)通用同步和異步串行接收器和轉(zhuǎn)發(fā)器(USART) 。在芯片的數(shù)據(jù)文檔里給出了波特率寄存器UBRR的值的計(jì)算公式。

          可是實(shí)際測(cè)試才發(fā)現(xiàn),就算出的值根本不能用。也就是說(shuō),用算出的值發(fā)出的波特率根本不是想要的波特率。百思不得其解,只好上網(wǎng)搜搜看有沒有收獲。果然,網(wǎng)上有個(gè)仁兄的癥狀和我一樣,也是波特率不對(duì)??戳撕竺娴幕卮?,覺得有一個(gè)挺靠譜的,大概是說(shuō),在用了AVR的內(nèi)部RC振蕩器的情況下,實(shí)際波特率會(huì)和計(jì)算值有偏差。因?yàn)樾酒膬?nèi)部RC振蕩器頻率不像外部晶振的頻率那么穩(wěn)定。
          在不增加外部晶振的情況下,如何解決問題呢?在網(wǎng)沒有找到什么方法,只好自己用笨方法了。上示波器,看單片機(jī)發(fā)出的波形的寬度,和標(biāo)準(zhǔn)的波特率的寬度對(duì)比,再一點(diǎn)點(diǎn)的在UBRR的計(jì)算值的基礎(chǔ)上修正,直到單片機(jī)發(fā)出的波形正確為止。
          以下是我測(cè)試出的一組UBRR的實(shí)際值,希望對(duì)有需要的朋友有用。

          注:
          芯片型號(hào):ATmega8L 使用模式:異步倍速模式(U2X = 1) 時(shí)鐘源:內(nèi)部RC振蕩器 時(shí)鐘頻率:8Mhz
          波特率寄存器(UBRR)計(jì)算公式:UBRR = f / (8*BAUD) - 1 (其中BAUD為期望波特率的值,f為時(shí)鐘頻率的值)

          本文引用地址:http://www.ex-cimer.com/article/201611/323816.htm

          波特率

          UBRR實(shí)際值

          UBRR計(jì)算值

          9600

          96

          103.16

          14400

          64

          68.44

          19200

          48

          51.08

          28800

          31

          33.72

          38400

          22

          25.04

          56000

          15

          16.85

          57600

          15

          16.36

          115200

          未測(cè)試

          7.68

          128000

          未測(cè)試

          6.81




          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();