資料介紹
波特率的計(jì)算STM32下的波特率和串口外設(shè)時(shí)鐘息息相關(guān),USART 1的時(shí)鐘來源于APB2,USART 2-5的時(shí)鐘來源于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)行計(jì)算。其實(shí)有關(guān)波特率的計(jì)算是下面這一條表達(dá)式:從上面的表達(dá)式,我們引入了一個新量USARTDIV,它表示對串口的時(shí)鐘源fck進(jìn)行分頻。假設(shè)我們已知道了波特率和fck時(shí)鐘頻率的大小,那么通過上式便可以計(jì)算出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)直接寫入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ù)部分得到一個新的整數(shù),再將其寫入U(xiǎn)SART_BRR的前四位。為什么在計(jì)算波特率的公式中要乘以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,它表示對串口的時(shí)鐘源fck進(jìn)行分頻,而這16表示的正是1bit數(shù)據(jù)的采樣次數(shù)。為什么呢?將這個表達(dá)式的分子分母倒過來,可以得到下面這條表達(dá)式每一位的傳輸時(shí)間只有1/TX_baud,這個總時(shí)間除以16,所以每采樣一次的時(shí)間正好是T1,即新分頻后的周期。而初始的串口時(shí)鐘信號來自于APBx,APBx時(shí)鐘信號需要經(jīng)過分頻才會等于T1,所以才需要分頻USARTDIV。(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- SJA1000波特率計(jì)算
- STM32 USART自動波特率檢測
- 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) 311次下載
- 串口波特率計(jì)算工具下載
- 51波特率初值計(jì)算
- 如何使用示波器測量串口波特率 2764次閱讀
- 串口傳輸速率低于波特率的原因和解決方法 2765次閱讀
- MIMXRT1060 FLEXIO UART波特率 1517次閱讀
- MPC5744p的CAN通信波特率如何計(jì)算 1822次閱讀
- MPC5744p的CAN通信波特率計(jì)算 2477次閱讀
- 串口通訊波特率出現(xiàn)誤差的因素 9382次閱讀
- 波特率是如何工作的 2121次閱讀
- 關(guān)于UART/CAN/PLL時(shí)鐘計(jì)算波特率的方法 7289次閱讀
- 如何計(jì)算8051單片機(jī)的波特率 3682次閱讀
- STM32 CAN總線傳輸波特率的計(jì)算 6704次閱讀
- 如何計(jì)算單片機(jī)的波特率 1.9w次閱讀
- 詳解串行通信的波特率設(shè)置問題 1.8w次閱讀
- 串行通信的實(shí)現(xiàn)條件和波特率自動整定問題 3745次閱讀
- 詳解波特率發(fā)生器編程/計(jì)算/波特率選擇 4414次閱讀
- 波特率與比特率的關(guān)系區(qū)別 8995次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多