日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32串口波特率大小計(jì)算案例

454398 ? 來源:博客園 ? 作者:cposture ? 2020-10-23 14:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

波特率的計(jì)算

STM32下的波特率和串口外設(shè)時(shí)鐘息息相關(guān),USART 1的時(shí)鐘來源于APB2,USART 2-5的時(shí)鐘來源于APB1。在STM32中,有個(gè)波特率寄存器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á)式,我們引入了一個(gè)新量USARTDIV,它表示對(duì)串口的時(shí)鐘源fck進(jìn)行分頻。假設(shè)我們已知道了波特率和fck時(shí)鐘頻率的大小,那么通過上式便可以計(jì)算出USARTDIV的具體大小,然后再通過USART的值大小對(duì)波特率寄存器進(jìn)行設(shè)置。

USARTDIV通過上面的表達(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?

?我們知道串口通信是通過TXD和RXD這兩條線進(jìn)行通信的,當(dāng)接收器的RXD連接著發(fā)送器的TXD,接收器的TXD連接著發(fā)送器的RXD,接收器和發(fā)送器可以通過RXD和TXD互傳數(shù)據(jù)。當(dāng)接收器檢測(cè)到RXD這條線的電平被拉為低電平,立即開始接收發(fā)送器發(fā)送過來的數(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ù),通常都要采樣多次,然后通過比較獲得準(zhǔn)確的數(shù)據(jù)。

前面已經(jīng)說過,USARTDIV,它表示對(duì)串口的時(shí)鐘源fck進(jìn)行分頻,而這16表示的正是1bit數(shù)據(jù)的采樣次數(shù)。為什么呢?

,將這個(gè)表達(dá)式的分子分母倒過來,可以得到下面這條表達(dá)式

每一位的傳輸時(shí)間只有1/TX_baud,這個(gè)總時(shí)間除以16,所以每采樣一次的時(shí)間正好是T1,即新分頻后的周期。而初始的串口時(shí)鐘信號(hào)來自于APBx,APBx時(shí)鐘信號(hào)需要經(jīng)過分頻才會(huì)等于T1,所以才需要分頻USARTDIV。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2313

    文章

    11195

    瀏覽量

    374756
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1663

    瀏覽量

    58201
  • 時(shí)鐘信號(hào)
    +關(guān)注

    關(guān)注

    4

    文章

    510

    瀏覽量

    30095
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    瑞芯微(EASY EAI)RV1126B 串口波特率修改

    1.波特率介紹1.1波特率的基本概念波特率(BaudRate)是指數(shù)據(jù)通信中,每秒傳輸?shù)拇a元數(shù),單位為波特(Baud),本質(zhì)是衡量數(shù)據(jù)傳輸速率的核心指標(biāo),反映
    的頭像 發(fā)表于 04-28 15:15 ?242次閱讀
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>串口</b><b class='flag-5'>波特率</b>修改

    智能顯示模塊支持哪些波特率?智能顯示模塊怎么設(shè)置波特率?

    智能顯示模塊支持哪些波特率?智能顯示模塊怎么設(shè)置波特率
    發(fā)表于 03-17 11:26

    碩博電子IO模塊修改波特率和節(jié)點(diǎn)ID操作步驟

    正確設(shè)置波特率與節(jié)點(diǎn)ID,是保證IO模塊與控制器穩(wěn)定通信的關(guān)鍵。配置不當(dāng)易引發(fā)設(shè)備失聯(lián)、數(shù)據(jù)錯(cuò)亂等故障。本文將詳細(xì)講解波特率與節(jié)點(diǎn)ID的規(guī)范修改步驟,輕松搞定配置難題。
    的頭像 發(fā)表于 01-27 10:39 ?756次閱讀
    碩博電子IO模塊修改<b class='flag-5'>波特率</b>和節(jié)點(diǎn)ID操作步驟

    使用內(nèi)置晶振的話,串口波特率最大可以設(shè)置多少,不會(huì)丟包嗎?

    之前我用ST的某芯片,采用內(nèi)置晶振,將波特率設(shè)置115200,100ms收發(fā)一次數(shù)據(jù)發(fā)現(xiàn)就有丟包的情況了,想知道,芯源的MCU效果如何?有大佬試過使用內(nèi)置晶振的話,串口波特率最大可以設(shè)置多少,不會(huì)丟包么
    發(fā)表于 01-19 06:48

    請(qǐng)問使用串口ISP波特率可以自己設(shè)定嗎?

    請(qǐng)問使用串口ISP,波特率可以自己設(shè)定嗎?
    發(fā)表于 01-14 08:27

    FDCAN 數(shù)據(jù)段波特率增加后發(fā)送失敗的問題分析

    客戶在使用 FDCAN 協(xié)議,仲裁段波特率配置位 1Mbit/s,數(shù)據(jù)段波特率配置為 5Mbit/s時(shí),發(fā)現(xiàn) FDCAN 發(fā)送功能異常。首先建議客戶使用 IC 內(nèi)部回環(huán)模式進(jìn)行測(cè)試發(fā)現(xiàn) 5M
    發(fā)表于 01-04 11:16 ?0次下載

    請(qǐng)問波特率參數(shù)如何設(shè)置?

    波特率參數(shù)如何設(shè)置?
    發(fā)表于 12-24 08:05

    支持小數(shù)波特率的意義是什么

    我看芯源有一款MCU是支持小數(shù)波特率,支持小數(shù)波特率的意義是什么?是為了數(shù)據(jù)傳輸更穩(wěn)定?
    發(fā)表于 12-11 07:15

    UART波特率計(jì)算及UART收發(fā)回顯實(shí)驗(yàn)

    決定串口波特率的寄存器有BRR(Bite Rate Rigister),SEMR(Serial Extended Mode Rigister)和MDDR(Modulation Duty
    的頭像 發(fā)表于 10-17 09:51 ?3438次閱讀
    UART<b class='flag-5'>波特率</b><b class='flag-5'>計(jì)算</b>及UART收發(fā)回顯實(shí)驗(yàn)

    串口波特率設(shè)置1200用不了是怎么回事?

    mcu:stm32f407zg 調(diào)試時(shí),設(shè)置波特率為1200,而串口輸出為亂碼,電腦設(shè)置波特率19200來接收mcu的數(shù)據(jù),卻能接收正確; (我以前沒有用RTT時(shí),用
    發(fā)表于 09-23 07:19

    115200的波特率,為啥實(shí)際速度只有11KB/s?

    波特率≠真實(shí)速度! 這幾個(gè)概念確實(shí)容易混淆,但它們描述的是通信過程中不同層面的速率指標(biāo)。讓我們一起來理清楚它們的區(qū)別和聯(lián)系↓ 主要區(qū)別解析 比特 (Bit Rate): 指每秒傳輸?shù)亩M(jìn)制比特?cái)?shù)量
    的頭像 發(fā)表于 09-10 11:18 ?1017次閱讀

    波特率是什么

    波特率是串行通信中的一個(gè)核心參數(shù),用于描述數(shù)據(jù)在傳輸線路上的傳輸速率。以下從定義、單位、與比特的關(guān)系、實(shí)際應(yīng)用及設(shè)置注意事項(xiàng)等方面進(jìn)行詳細(xì)說明: 一、定義與本質(zhì) 波特率(Baud Rate)指單位
    的頭像 發(fā)表于 07-22 11:11 ?9650次閱讀

    cyw43907串口數(shù)據(jù)錯(cuò)位問題怎么解決?

    1.串口數(shù)據(jù)會(huì)偶發(fā)錯(cuò)位問題,具體在附件中描述。 2.目前使用串口0進(jìn)行通信,發(fā)現(xiàn)在配置波特率為460800的時(shí)候通訊異常,debug發(fā)現(xiàn)貌似是波特率誤差過大,所以選擇了467500,有
    發(fā)表于 07-09 08:16

    可編程電源的通信波特率應(yīng)如何設(shè)置?

    (如RS-485專用電纜)并縮短通信距離。 在電源和PC端添加終端電阻(如120Ω)以減少信號(hào)反射。 問題3:多臺(tái)電源通信沖突 原因:多臺(tái)電源共用同一串口,地址沖突或波特率不一致。 解決: 為每臺(tái)
    發(fā)表于 07-07 15:01

    基于瑞薩64位MPU RZ/G2L的uboot串口波特率支持介紹

    本文主要介紹基于瑞薩64位MPU RZ/G2L,討論uboot下非常規(guī)波特率115200的支持方法,用于解決客戶對(duì)uboot下特殊波特率的需求,供客戶參考。
    的頭像 發(fā)表于 07-04 15:54 ?3264次閱讀
    基于瑞薩64位MPU RZ/G2L的uboot<b class='flag-5'>串口</b>多<b class='flag-5'>波特率</b>支持介紹
    卫辉市| 密云县| 利津县| 龙南县| 辛集市| 台江县| 蒙山县| 鸡泽县| 莱西市| 繁昌县| 顺昌县| 饶阳县| 疏附县| 恭城| 云阳县| 广水市| 安多县| 金平| 灌阳县| 罗城| 中牟县| 莆田市| 临江市| 佛山市| 定南县| 老河口市| 宜良县| 大厂| 佛冈县| 双桥区| 萨迦县| 汨罗市| 韶关市| 文安县| 都兰县| 福建省| 双鸭山市| 台北县| 铜鼓县| 黄平县| 上高县|