找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4478|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

哪個壇友知道單片機(jī)波特率誤差是如何計算出來的?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:668004 發(fā)表于 2020-10-10 18:12 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
如題

51hei圖片20201010164849.jpg (56.03 KB, 下載次數(shù): 78)

51hei圖片20201010164849.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:668004 發(fā)表于 2020-10-12 18:41 | 只看該作者
哪個知道的 回復(fù)下   謝謝
回復(fù)

使用道具 舉報

板凳
ID:584814 發(fā)表于 2020-10-13 11:40 | 只看該作者
首先,第一個在5600時也有偏差的只是未列入而已并不是完美;
其次,原理上先有波特率后有時鐘頻率,后者要順應(yīng)前者;
然后就是計算了,定時器時間取整體,每秒波特率你算一下就知道了。

太長不看:11.0592MHZ是應(yīng)波特率而定制的晶振。
回復(fù)

使用道具 舉報

地板
ID:668004 發(fā)表于 2020-10-13 15:06 | 只看該作者
man1234567 發(fā)表于 2020-10-13 11:40
首先,第一個在5600時也有偏差的只是未列入而已并不是完美;
其次,原理上先有波特率后有時鐘頻率,后者要 ...

我看了下  但是真的沒看懂 有人說直接 用時鐘頻率/分頻數(shù)/定時器初值  比如需要115200的波特率  而時鐘頻率是24M  假如是4分頻    就是{[24000000/4]/[24000000/4/115200]-115200}/115200  *100%   對不對??
回復(fù)

使用道具 舉報

5#
ID:668004 發(fā)表于 2020-10-13 15:19 | 只看該作者
man1234567 發(fā)表于 2020-10-13 11:40
首先,第一個在5600時也有偏差的只是未列入而已并不是完美;
其次,原理上先有波特率后有時鐘頻率,后者要 ...

我看了下  但是真的沒看懂 有人說直接 用時鐘頻率/分頻數(shù)/定時器初值  比如需要115200的波特率  而時鐘頻率是24M  假如是4分頻    就是{[24000000/4]/[24000000/4/115200]-115200}/115200  *100%   對不對??

1.jpg (270.82 KB, 下載次數(shù): 73)

1.jpg
回復(fù)

使用道具 舉報

6#
ID:401564 發(fā)表于 2020-10-13 19:49 | 只看該作者
11.0592MHZ是專門為波特率生產(chǎn)的晶振
你這個表是8051單片機(jī)專用的波特率計算,別的單片機(jī)不一樣算法,不通用的
你知道怎么計算也沒有用
在這之前,你要知道波特率是什么意思,不是網(wǎng)上那什么速率什么的,而是要完全明白波特率才行
比如:1200波特率是表示1秒傳送的數(shù)據(jù)位是1200位
然后你還要知道8051定時器作為波特率輸出的工作模式,每個寄存器位的意義是什么,你肯定沒看明白,看了就不會問這個了
別人說就是除這個除那個,最后就是這個,你只能一臉的茫然

你要是只想知道這誤差怎么來的,前面的話不用看,拿晶振頻率去除以波特率,11.0592是可以被左邊的波特率整除的,這就沒有誤差了
回復(fù)

使用道具 舉報

7#
ID:668004 發(fā)表于 2020-10-14 17:44 | 只看該作者
Y_G_G 發(fā)表于 2020-10-13 19:49
11.0592MHZ是專門為波特率生產(chǎn)的晶振
你這個表是8051單片機(jī)專用的波特率計算,別的單片機(jī)不一樣算法,不通用 ...

你知道怎么計算嗎  比如用12M晶振  波特率115200  會有多少的誤差
回復(fù)

使用道具 舉報

8#
ID:401564 發(fā)表于 2020-10-15 08:56 | 只看該作者
QWE4562012 發(fā)表于 2020-10-14 17:44
你知道怎么計算嗎  比如用12M晶振  波特率115200  會有多少的誤差

哥們,重點(diǎn)不在這好嗎!這不是波特率的問題!所謂1200波特率就是1秒傳輸1200個位而已
重點(diǎn)在8051定時器的工作方式,8051定時器的工作方式,8051定時器的工作方式!說了3遍了
1200波特率就是要定時器1的溢出頻率為1200HZ,那就是要定時器產(chǎn)生1200HZ的頻率,那就去設(shè)置定時器1
這個時候波特率的計算不就變成了對定時器1的操作了嗎?怎么樣讓定時器1輸出1200HZ的頻率呢?
這個說不明白的,從8051的時鐘周期到機(jī)器周期,再到定時器1的分頻模式,然后就是定時器的五六種工作模式,這是編程,不是種田,不能說先這樣然后那樣就可以了,每個寄存器每個位的操作都是有嚴(yán)格要求的,你要從8051系統(tǒng)工作方式開始看才能明白的,而且,這個只是針對8051的某個型號的單片機(jī)而已,并不通用,這要對單片機(jī)很了解才行,三言兩語說不明白,我寧愿打那么多字,都不想從8051的時鐘周期開始解釋到定時器1的工作模式
回復(fù)

使用道具 舉報

9#
ID:849519 發(fā)表于 2021-4-10 16:30 | 只看該作者
https://blog.csdn.net/cr2269736819/article/details/79780989
你可以參考上述網(wǎng)址的回答。
總的來說,誤差計算的方法是一樣的,Error= (當(dāng)前波特率 – 標(biāo)準(zhǔn)波特率)/標(biāo)準(zhǔn)波特率 * 100%。
當(dāng)前波特率,就是你采用你的晶振和設(shè)定的定時器初值,算出來的波特率;這個波特率本身不是你想要的,因?yàn)榇蠹也ㄌ芈室话愣既?biāo)準(zhǔn)值,比如1200,2400,4800,9600等等。舉個例子,波特率你想取4800,但是由于晶振不是11.0592Mhz,你定時器算下來一定不是整數(shù),但是你只能取整,假設(shè)這個整數(shù)是x。你把這個整數(shù)x帶入到計算波特率的公式,求出來的波特率就是這個當(dāng)前波特率。
標(biāo)準(zhǔn)波特率就是,你一開始想要取的理想值,比如上面例子里說的4800。
總的來說,誤差都是:實(shí)際值相對于理想值來計算的

評分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

10#
ID:849519 發(fā)表于 2021-4-10 16:35 | 只看該作者
https://blog.csdn.net/cr2269736819/article/details/79780989
你可以參考上面的鏈接。
總的來說,誤差都是:實(shí)際值相對于理想值計算的。公式為:誤差= (實(shí)際波特率 – 理想波特率)/理想波特率 * 100%。
波特率,大家都是取標(biāo)準(zhǔn)值,比如1200,2400,4800,9600。這些標(biāo)準(zhǔn)值就是理想值。
你的時鐘如果不是11.0592,定時器的初值算下來就不是整數(shù),但是寄存器你只能取整數(shù)。假設(shè)這個整數(shù)是x,你用這個整數(shù)x再帶入到計算波特率的公式,求得的值,就是實(shí)際波特率。
這么說理解了嗎
回復(fù)

使用道具 舉報

11#
ID:889352 發(fā)表于 2021-4-16 09:00 | 只看該作者
晶振 是關(guān)鍵
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表