資料介紹
波特率的計算
STM32下的波特率和串口外設時鐘息息相關,USART 1的時鐘來源于APB2,USART 2-5的時鐘來源于APB1。在STM32中,有個波特率寄存器USART_BRR,如下:
STM32串口波特率通過USART_BRR進行設置,STM32的波特率寄存器支持分數設置,以提高精確度。USART_BRR的前4位用于表示小數,后12位用于表示整數。但是它還不是我們想要設置的波特率,想要設置我們串口的波特率大小還需要進行計算。
其實有關波特率的計算是下面這一條表達式:
從上面的表達式,我們引入了一個新量USARTDIV,它表示對串口的時鐘源fck進行分頻。假設我們已知道了波特率和fck時鐘頻率的大小,那么通過上式便可以計算出USARTDIV的具體大小,然后再通過USART的值大小對波特率寄存器進行設置。
USARTDIV通過上面的表達式得出,是一個帶有小數的浮點數(如27.75)。將小數部分和整數部分分開,分別得到一個整數值n(如27)和一個小數值m(如0.75)。有了這兩個值我們便可以填寫USART_BRR寄存器進而設置我們串口波特率大小了。
將整數部分m(27 = 0x1B)直接寫入USART_BRR的后12位部分;將小數部分n乘以16后得到的整數值(如0.75 x 16 = 12 = 0xC)寫入USART_BRR前4位部分,最后USART_BRR的值為0x1BC。
注意:如果小數部分乘以16之后仍帶有小數,則要四舍五入去除小數部分得到一個新的整數,再將其寫入USART_BRR的前四位。
為什么在計算波特率的公式中要乘以16?
我們知道串口通信是通過TXD和RXD這兩條線進行通信的,當接收器的RXD連接著發(fā)送器的TXD,接收器的TXD連接著發(fā)送器的RXD,接收器和發(fā)送器可以通過RXD和TXD互傳數據。當接收器檢測到RXD這條線的電平被拉為低電平,立即開始接收發(fā)送器發(fā)送過來的數據,剛剛那個低電平只是一個告知接收器可以接收數據的起始位而已。
在數據的傳輸中,信號可能受到一些干擾而產生一些抖動,如下圖。如果接收端只對這些信號數據采樣一次,那么它有可能采樣到的是抖動的不準的數據,進而使數據傳輸不準確,所以接收端在采樣數據線上的數據,通常都要采樣多次,然后通過比較獲得準確的數據。
前面已經說過,USARTDIV,它表示對串口的時鐘源fck進行分頻,而這16表示的正是1bit數據的采樣次數。為什么呢?
,將這個表達式的分子分母倒過來,可以得到下面這條表達式
每一位的傳輸時間只有1/TX_baud,這個總時間除以16,所以每采樣一次的時間正好是T1,即新分頻后的周期。而初始的串口時鐘信號來自于APBx,APBx時鐘信號需要經過分頻才會等于T1,所以才需要分頻USARTDIV。
轉自:博客園,轉載此文目的在于傳遞更多信息,版權歸原作者所有。
原文鏈接:
(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- SJA1000波特率計算
- STM32 USART自動波特率檢測
- STM32下波特率計算詳解
- 串口波特率計算詳解
- stm32中如何計算波特率資料下載
- 波特率計算器的應用程序免費下載 16次下載
- 單片機51波特率計算工具應用程序免費下載 5次下載
- 51波特率初值設定計算應用程序免費下載 4次下載
- 51波特率計算 2次下載
- 51波特率計算 1次下載
- 51波特率初值計算工具 1次下載
- 430波特率計算器 0次下載
- CAN 波特率計算器(MCP2515) 352次下載
- 串口波特率計算工具下載
- 51波特率初值計算
- UART波特率計算及UART收發(fā)回顯實驗 2.7k次閱讀
- 波特率9600和115200的區(qū)別 7.7k次閱讀
- 如何使用示波器測量串口波特率 9.6k次閱讀
- MIMXRT1060 FLEXIO UART波特率 2.8k次閱讀
- MPC5744p的CAN通信波特率如何計算 3.1k次閱讀
- MPC5744p的CAN通信波特率計算 3.5k次閱讀
- 串口通訊波特率出現誤差的因素 1.2w次閱讀
- 波特率是如何工作的 3.4k次閱讀
- 關于UART/CAN/PLL時鐘計算波特率的方法 9.5k次閱讀
- 如何計算8051單片機的波特率 4.5k次閱讀
- STM32 CAN總線傳輸波特率的計算 7.6k次閱讀
- 如何計算單片機的波特率 2w次閱讀
- 串行通信的實現條件和波特率自動整定問題 4.5k次閱讀
- 詳解波特率發(fā)生器編程/計算/波特率選擇 5.4k次閱讀
- 波特率與比特率的關系區(qū)別 9.6k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 2安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 3直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費
- 4丹佛斯2800系列變頻器說明書
- 8.00 MB | 1次下載 | 5 積分
- 5PC8011同步開關型降壓3.5A單節(jié)鋰電池充電管理電路技術手冊
- 0.74 MB | 1次下載 | 免費
- 6ES7243E+ES8311音頻錄制與播放電路資料
- 0.06 MB | 1次下載 | 5 積分
- 7SDM02 激光測距模塊產品手冊
- 0.43 MB | 1次下載 | 免費
- 8SDFM 激光測距模塊模組手冊
- 0.54 MB | 1次下載 | 免費
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場分析及創(chuàng)新應用
- 3.11 MB | 43次下載 | 免費
- 3RV1126B系列開發(fā)板產品資料
- 4.19 MB | 18次下載 | 免費
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開發(fā)板 四核異構、3路千兆網,賦能多元化工業(yè)場景
- 3.05 MB | 12次下載 | 免費
- 6【開源】60余套STM32單片機、嵌入式Linux、物聯(lián)網、人工智能項目案例及入門學習資源包
- 10.55 MB | 8次下載 | 免費
- 7冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車載充電機主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191448次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





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