欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5006|回復: 10
收起左側

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

[復制鏈接]
ID:668004 發表于 2020-10-10 18:12 | 顯示全部樓層 |閱讀模式
如題
51hei圖片20201010164849.jpg
回復

使用道具 舉報

ID:668004 發表于 2020-10-12 18:41 | 顯示全部樓層
哪個知道的 回復下   謝謝
回復

使用道具 舉報

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

太長不看:11.0592MHZ是應波特率而定制的晶振。
回復

使用道具 舉報

ID:668004 發表于 2020-10-13 15:06 | 顯示全部樓層
man1234567 發表于 2020-10-13 11:40
首先,第一個在5600時也有偏差的只是未列入而已并不是完美;
其次,原理上先有波特率后有時鐘頻率,后者要 ...

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

使用道具 舉報

5#
無效樓層,該帖已經被刪除
ID:668004 發表于 2020-10-13 15:19 | 顯示全部樓層
man1234567 發表于 2020-10-13 11:40
首先,第一個在5600時也有偏差的只是未列入而已并不是完美;
其次,原理上先有波特率后有時鐘頻率,后者要 ...

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

使用道具 舉報

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

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

使用道具 舉報

ID:668004 發表于 2020-10-14 17:44 | 顯示全部樓層
Y_G_G 發表于 2020-10-13 19:49
11.0592MHZ是專門為波特率生產的晶振
你這個表是8051單片機專用的波特率計算,別的單片機不一樣算法,不通用 ...

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

使用道具 舉報

ID:401564 發表于 2020-10-15 08:56 | 顯示全部樓層
QWE4562012 發表于 2020-10-14 17:44
你知道怎么計算嗎  比如用12M晶振  波特率115200  會有多少的誤差

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

使用道具 舉報

ID:849519 發表于 2021-4-10 16:30 | 顯示全部樓層
https://blog.csdn.net/cr2269736819/article/details/79780989
你可以參考上述網址的回答。
總的來說,誤差計算的方法是一樣的,Error= (當前波特率 – 標準波特率)/標準波特率 * 100%。
當前波特率,就是你采用你的晶振和設定的定時器初值,算出來的波特率;這個波特率本身不是你想要的,因為大家波特率一般都取標準值,比如1200,2400,4800,9600等等。舉個例子,波特率你想取4800,但是由于晶振不是11.0592Mhz,你定時器算下來一定不是整數,但是你只能取整,假設這個整數是x。你把這個整數x帶入到計算波特率的公式,求出來的波特率就是這個當前波特率。
標準波特率就是,你一開始想要取的理想值,比如上面例子里說的4800。
總的來說,誤差都是:實際值相對于理想值來計算的

評分

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

查看全部評分

回復

使用道具 舉報

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

使用道具 舉報

ID:889352 發表于 2021-4-16 09:00 | 顯示全部樓層
晶振 是關鍵
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表