資料介紹
波特率的計算
STM32下的波特率和串口外設(shè)時鐘息息相關(guān),USART 1的時鐘來源于APB2,USART 2-5的時鐘來源于APB1。在STM32中,有個波特率寄存器USART_BRR,如下:
STM32串口波特率通過USART_BRR進(jìn)行設(shè)置,STM32的波特率寄存器支持分?jǐn)?shù)設(shè)置,以提高精確度。USART_BRR的前4位用于表示小數(shù),后12位用于表示整數(shù)。但是它還不是我們想要設(shè)置的波特率,想要設(shè)置我們串口的波特率大小還需要進(jìn)行計算。
其實(shí)有關(guān)波特率的計算是下面這一條表達(dá)式:
從上面的表達(dá)式,我們引入了一個新量USARTDIV,它表示對串口的時鐘源fck進(jìn)行分頻。假設(shè)我們已知道了波特率和fck時鐘頻率的大小,那么通過上式便可以計算出USARTDIV的具體大小,然后再通過USART的值大小對波特率寄存器進(jìn)行設(shè)置。
USARTDIV通過上面的表達(dá)式得出,是一個帶有小數(shù)的浮點(diǎn)數(shù)(如27.75)。將小數(shù)部分和整數(shù)部分分開,分別得到一個整數(shù)值n(如27)和一個小數(shù)值m(如0.75)。有了這兩個值我們便可以填寫USART_BRR寄存器進(jìn)而設(shè)置我們串口波特率大小了。
將整數(shù)部分m(27 = 0x1B)直接寫入USART_BRR的后12位部分;將小數(shù)部分n乘以16后得到的整數(shù)值(如0.75 x 16 = 12 = 0xC)寫入USART_BRR前4位部分,最后USART_BRR的值為0x1BC。
注意:如果小數(shù)部分乘以16之后仍帶有小數(shù),則要四舍五入去除小數(shù)部分得到一個新的整數(shù),再將其寫入USART_BRR的前四位。
為什么在計算波特率的公式中要乘以16?
我們知道串口通信是通過TXD和RXD這兩條線進(jìn)行通信的,當(dāng)接收器的RXD連接著發(fā)送器的TXD,接收器的TXD連接著發(fā)送器的RXD,接收器和發(fā)送器可以通過RXD和TXD互傳數(shù)據(jù)。當(dāng)接收器檢測到RXD這條線的電平被拉為低電平,立即開始接收發(fā)送器發(fā)送過來的數(shù)據(jù),剛剛那個低電平只是一個告知接收器可以接收數(shù)據(jù)的起始位而已。
在數(shù)據(jù)的傳輸中,信號可能受到一些干擾而產(chǎn)生一些抖動,如下圖。如果接收端只對這些信號數(shù)據(jù)采樣一次,那么它有可能采樣到的是抖動的不準(zhǔn)的數(shù)據(jù),進(jìn)而使數(shù)據(jù)傳輸不準(zhǔn)確,所以接收端在采樣數(shù)據(jù)線上的數(shù)據(jù),通常都要采樣多次,然后通過比較獲得準(zhǔn)確的數(shù)據(jù)。
前面已經(jīng)說過,USARTDIV,它表示對串口的時鐘源fck進(jìn)行分頻,而這16表示的正是1bit數(shù)據(jù)的采樣次數(shù)。為什么呢?
,將這個表達(dá)式的分子分母倒過來,可以得到下面這條表達(dá)式
每一位的傳輸時間只有1/TX_baud,這個總時間除以16,所以每采樣一次的時間正好是T1,即新分頻后的周期。而初始的串口時鐘信號來自于APBx,APBx時鐘信號需要經(jīng)過分頻才會等于T1,所以才需要分頻USARTDIV。
轉(zhuǎn)自:博客園,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。
原文鏈接:
(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- SJA1000波特率計算
- STM32 USART自動波特率檢測
- STM32下波特率計算詳解
- 串口波特率計算詳解
- stm32中如何計算波特率資料下載
- 波特率計算器的應(yīng)用程序免費(fèi)下載 16次下載
- 單片機(jī)51波特率計算工具應(yīng)用程序免費(fèi)下載 5次下載
- 51波特率初值設(shè)定計算應(yīng)用程序免費(fèi)下載 4次下載
- 51波特率計算 2次下載
- 51波特率計算 1次下載
- 51波特率初值計算工具 1次下載
- 430波特率計算器 0次下載
- CAN 波特率計算器(MCP2515) 311次下載
- 串口波特率計算工具下載
- 51波特率初值計算
- 如何使用示波器測量串口波特率 2773次閱讀
- MIMXRT1060 FLEXIO UART波特率 1517次閱讀
- MPC5744p的CAN通信波特率如何計算 1822次閱讀
- MPC5744p的CAN通信波特率計算 2477次閱讀
- 串口通訊波特率出現(xiàn)誤差的因素 9384次閱讀
- 波特率是如何工作的 2124次閱讀
- 關(guān)于UART/CAN/PLL時鐘計算波特率的方法 7294次閱讀
- 如何計算8051單片機(jī)的波特率 3682次閱讀
- STM32 CAN總線傳輸波特率的計算 6704次閱讀
- 如何計算單片機(jī)的波特率 1.9w次閱讀
- 詳解串行通信的波特率設(shè)置問題 1.8w次閱讀
- 串行通信的實(shí)現(xiàn)條件和波特率自動整定問題 3746次閱讀
- STC89C52RC串口波特率程序 8979次閱讀
- 詳解波特率發(fā)生器編程/計算/波特率選擇 4414次閱讀
- 波特率與比特率的關(guān)系區(qū)別 8995次閱讀
下載排行
本周
- 1TPS54202H降壓轉(zhuǎn)換器評估模塊用戶指南
- 1.02MB | 7次下載 | 免費(fèi)
- 2華瑞昇CR215芯片數(shù)字萬用表原理圖
- 0.21 MB | 1次下載 | 3 積分
- 3SMD LED選型目錄 燈珠手冊
- 5.36 MB | 1次下載 | 免費(fèi)
- 4Tiva C系列DK-TM4C129X入門指南
- 1.69MB | 1次下載 | 免費(fèi)
- 5電涌保護(hù)器(SPD)的選擇、安裝以及裝配
- 4.57 MB | 1次下載 | 免費(fèi)
- 6時源芯微EMC前車燈案例
- 458.59 KB | 1次下載 | 免費(fèi)
- 7bq25890、bq25892雙級聯(lián)充電器EVM(PWR692)用戶指南
- 2.02MB | 1次下載 | 免費(fèi)
- 8TPS54426降壓轉(zhuǎn)換器評估模塊用戶指南
- 847.7KB | 次下載 | 免費(fèi)
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 156次下載 | 免費(fèi)
- 22024PMIC市場洞察
- 2.23 MB | 63次下載 | 免費(fèi)
- 3開關(guān)電源設(shè)計原理手冊
- 1.83 MB | 30次下載 | 免費(fèi)
- 4智能門鎖原理圖
- 0.39 MB | 28次下載 | 免費(fèi)
- 5OAH0428最新規(guī)格書(中文)
- 2.52 MB | 15次下載 | 7 積分
- 6ST7789V2單芯片控制器/驅(qū)動器英文手冊
- 3.07 MB | 9次下載 | 1 積分
- 7LTH7充電電路和鋰電池升壓5V輸出電路原理圖
- 0.04 MB | 7次下載 | 免費(fèi)
- 8TPS54202H降壓轉(zhuǎn)換器評估模塊用戶指南
- 1.02MB | 7次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183334次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評論
查看更多