資料介紹
波特率的計(jì)算
STM32下的波特率和串口外設(shè)時(shí)鐘息息相關(guān),USART 1的時(shí)鐘來(lái)源于APB2,USART 2-5的時(shí)鐘來(lái)源于APB1。在STM32中,有個(gè)波特率寄存器USART_BRR,如下:
STM32串口波特率通過(guò)USART_BRR進(jìn)行設(shè)置,STM32的波特率寄存器支持分?jǐn)?shù)設(shè)置,以提高精確度。USART_BRR的前4位用于表示小數(shù),后12位用于表示整數(shù)。但是它還不是我們想要設(shè)置的波特率,想要設(shè)置我們串口的波特率大小還需要進(jìn)行計(jì)算。
其實(shí)有關(guān)波特率的計(jì)算是下面這一條表達(dá)式:
從上面的表達(dá)式,我們引入了一個(gè)新量USARTDIV,它表示對(duì)串口的時(shí)鐘源fck進(jìn)行分頻。假設(shè)我們已知道了波特率和fck時(shí)鐘頻率的大小,那么通過(guò)上式便可以計(jì)算出USARTDIV的具體大小,然后再通過(guò)USART的值大小對(duì)波特率寄存器進(jìn)行設(shè)置。
USARTDIV通過(guò)上面的表達(dá)式得出,是一個(gè)帶有小數(shù)的浮點(diǎn)數(shù)(如27.75)。將小數(shù)部分和整數(shù)部分分開,分別得到一個(gè)整數(shù)值n(如27)和一個(gè)小數(shù)值m(如0.75)。有了這兩個(gè)值我們便可以填寫USART_BRR寄存器進(jìn)而設(shè)置我們串口波特率大小了。
將整數(shù)部分m(27 = 0x1B)直接寫入U(xiǎn)SART_BRR的后12位部分;將小數(shù)部分n乘以16后得到的整數(shù)值(如0.75 x 16 = 12 = 0xC)寫入U(xiǎn)SART_BRR前4位部分,最后USART_BRR的值為0x1BC。
注意:如果小數(shù)部分乘以16之后仍帶有小數(shù),則要四舍五入去除小數(shù)部分得到一個(gè)新的整數(shù),再將其寫入U(xiǎn)SART_BRR的前四位。
為什么在計(jì)算波特率的公式中要乘以16?
我們知道串口通信是通過(guò)TXD和RXD這兩條線進(jìn)行通信的,當(dāng)接收器的RXD連接著發(fā)送器的TXD,接收器的TXD連接著發(fā)送器的RXD,接收器和發(fā)送器可以通過(guò)RXD和TXD互傳數(shù)據(jù)。當(dāng)接收器檢測(cè)到RXD這條線的電平被拉為低電平,立即開始接收發(fā)送器發(fā)送過(guò)來(lái)的數(shù)據(jù),剛剛那個(gè)低電平只是一個(gè)告知接收器可以接收數(shù)據(jù)的起始位而已。
在數(shù)據(jù)的傳輸中,信號(hào)可能受到一些干擾而產(chǎn)生一些抖動(dòng),如下圖。如果接收端只對(duì)這些信號(hào)數(shù)據(jù)采樣一次,那么它有可能采樣到的是抖動(dòng)的不準(zhǔn)的數(shù)據(jù),進(jìn)而使數(shù)據(jù)傳輸不準(zhǔn)確,所以接收端在采樣數(shù)據(jù)線上的數(shù)據(jù),通常都要采樣多次,然后通過(guò)比較獲得準(zhǔn)確的數(shù)據(jù)。
前面已經(jīng)說(shuō)過(guò),USARTDIV,它表示對(duì)串口的時(shí)鐘源fck進(jìn)行分頻,而這16表示的正是1bit數(shù)據(jù)的采樣次數(shù)。為什么呢?
,將這個(gè)表達(dá)式的分子分母倒過(guò)來(lái),可以得到下面這條表達(dá)式
每一位的傳輸時(shí)間只有1/TX_baud,這個(gè)總時(shí)間除以16,所以每采樣一次的時(shí)間正好是T1,即新分頻后的周期。而初始的串口時(shí)鐘信號(hào)來(lái)自于APBx,APBx時(shí)鐘信號(hào)需要經(jīng)過(guò)分頻才會(huì)等于T1,所以才需要分頻USARTDIV。
轉(zhuǎn)自:博客園,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。
原文鏈接:
(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- SJA1000波特率計(jì)算
- STM32 USART自動(dòng)波特率檢測(cè)
- STM32下波特率計(jì)算詳解
- 串口波特率計(jì)算詳解
- stm32中如何計(jì)算波特率資料下載
- 波特率計(jì)算器的應(yīng)用程序免費(fèi)下載 16次下載
- 單片機(jī)51波特率計(jì)算工具應(yīng)用程序免費(fèi)下載 5次下載
- 51波特率初值設(shè)定計(jì)算應(yīng)用程序免費(fèi)下載 4次下載
- 51波特率計(jì)算 2次下載
- 51波特率計(jì)算 1次下載
- 51波特率初值計(jì)算工具 1次下載
- 430波特率計(jì)算器 0次下載
- CAN 波特率計(jì)算器(MCP2515) 330次下載
- 串口波特率計(jì)算工具下載
- 51波特率初值計(jì)算
- 波特率9600和115200的區(qū)別 2150次閱讀
- 如何使用示波器測(cè)量串口波特率 5359次閱讀
- MIMXRT1060 FLEXIO UART波特率 1774次閱讀
- MPC5744p的CAN通信波特率如何計(jì)算 2093次閱讀
- MPC5744p的CAN通信波特率計(jì)算 2699次閱讀
- 串口通訊波特率出現(xiàn)誤差的因素 1w次閱讀
- 波特率是如何工作的 2352次閱讀
- 關(guān)于UART/CAN/PLL時(shí)鐘計(jì)算波特率的方法 7998次閱讀
- 如何計(jì)算8051單片機(jī)的波特率 3977次閱讀
- STM32 CAN總線傳輸波特率的計(jì)算 6945次閱讀
- 如何計(jì)算單片機(jī)的波特率 1.9w次閱讀
- 詳解串行通信的波特率設(shè)置問(wèn)題 1.9w次閱讀
- 串行通信的實(shí)現(xiàn)條件和波特率自動(dòng)整定問(wèn)題 3965次閱讀
- 詳解波特率發(fā)生器編程/計(jì)算/波特率選擇 4739次閱讀
- 波特率與比特率的關(guān)系區(qū)別 9164次閱讀
下載排行
本周
- 1PC3103 低功耗電流模式PWM控制器技術(shù)手冊(cè)
- 1.23 MB | 3次下載 | 免費(fèi)
- 2L7805CV TO-220三端穩(wěn)壓IC規(guī)格書
- 0.71 MB | 1次下載 | 免費(fèi)
- 3LoRa2021 全頻段無(wú)線通訊模塊規(guī)格書
- 814.22 KB | 1次下載 | 免費(fèi)
- 4L7812CV TO-220三端穩(wěn)壓IC規(guī)格書
- 1.35 MB | 次下載 | 免費(fèi)
- 5L7815CV TO-220三端穩(wěn)壓IC規(guī)格書
- 1.48 MB | 次下載 | 免費(fèi)
- 6N-12電子傾斜儀指南
- 0.24 MB | 次下載 | 10 積分
- 7基于CP500S掃描測(cè)頭的三坐標(biāo)測(cè)量系統(tǒng):復(fù)雜曲面零件解決方案
- 0.35 MB | 次下載 | 免費(fèi)
- 8STM32H747xI/G 英文數(shù)據(jù)手冊(cè)
- 5.09 MB | 次下載 | 免費(fèi)
本月
- 1PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
- 1.83 MB | 18次下載 | 4 積分
- 2電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
- 6.47 MB | 17次下載 | 免費(fèi)
- 3世平基于靈動(dòng)微 SPIN560C 的低壓無(wú)刷電機(jī)應(yīng)用方案
- 10.93 MB | 11次下載 | 免費(fèi)
- 4900MHz全雙工無(wú)線發(fā)射器參考設(shè)計(jì)原理圖資料
- 0.40 MB | 6次下載 | 免費(fèi)
- 5PWM控制器的控制方法
- 0.39 MB | 3次下載 | 4 積分
- 6900MHz全雙工無(wú)線發(fā)射器參考設(shè)計(jì)
- 0.15 MB | 3次下載 | 1 積分
- 7美的電磁爐TM-S1-20B PN8124F+CHK S009資料圖
- 0.28 MB | 3次下載 | 10 積分
- 8FS313B USB 的 PD和QC 快充協(xié)議電壓誘騙控制器規(guī)格書
- 2.61 MB | 3次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935134次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191424次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183352次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73819次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App






創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論