色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

USART的波特率的計(jì)算公式

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2022-02-16 15:57 ? 次閱讀

使用開發(fā)板的USART作為UART通信,在前調(diào)用BSP_Init()函數(shù)初始化開發(fā)板,串口上傳輸?shù)臄?shù)據(jù)出錯(cuò):‘a(chǎn)’變成0xfa或0xfe;

【在這個(gè)問題解決之后,回頭總結(jié)下,在解決問題時(shí):

1.預(yù)計(jì)有可能造成出錯(cuò)的原因(這個(gè)可能需要一些經(jīng)驗(yàn),但是思維方式需要這樣的猜測,從系統(tǒng)內(nèi)外,可以先羅列出盡可能有的原因,后面再一一排除)

2.盡可能的定位出錯(cuò)的地方(比如這里通過在線調(diào)試,確定在修改時(shí)鐘后,可以解決數(shù)據(jù)發(fā)送的不正確)

3.推測并排除次因,找出主因,往深一步探測 】

1:猜測原因。

外因:串口接收的過程受干擾

內(nèi)因:A.端口設(shè)置有問題 B.USART的波特率設(shè)置有問題

2:定位錯(cuò)誤

在剛開始時(shí)通過屏蔽BSP_Init()發(fā)現(xiàn)功能正常,再具體定位到BSP_Init()里面的SYSCLK_Frequency時(shí)鐘設(shè)置,發(fā)現(xiàn)例程中默認(rèn)的是72M,但是改為36M,就沒有問題,應(yīng)該是時(shí)鐘方面的設(shè)置問題,具體的問題做何解析?

3:推測排除,深究

外因內(nèi)因很好排除,數(shù)據(jù)既然在波特率低時(shí)能正常通信,可能不是端口設(shè)置的問題,應(yīng)該是波特率的問題,常看用戶手冊該節(jié)的資料:

注:

1.CPU 的時(shí)鐘頻率越低,則某一特定波特率的誤差也越低。可以達(dá)到的波特率上限可以由這組數(shù)據(jù)得到。

2.只有USART1 使用PCLK2(最高72MHz)。其它USART使用PCLK1(最高36MHz)。

USART的波特率的計(jì)算公式:

USARTDIV是一個(gè)無符號的定點(diǎn)數(shù)。這12位的值設(shè)置在USART_BRR寄存器。那么USARTDIV與USART_BRR的關(guān)系又是怎么樣的?

加入U(xiǎn)SARTDIV=27.75;那么USART_BRR=0x1B(27)+0XC(0.75*16)=0X1BC;同理可以從USART_BRR推出USARTDIV的值;

假設(shè)fck=36000000;Tx=115200;=》USARTDIV=19.53125;所以0x13+(0.53125*16=8.5)=》0x13+0x9=0x139;所以實(shí)際上是0x139產(chǎn)生的波特率:115015.97(誤差率為0.15%);

===》理論最大波特率:36000000/(16*1.0)=2.25M(USARTDIV最小為1.0)

繼續(xù)往下查,對于SYSCLK_Frequency最高72M,運(yùn)行應(yīng)該沒有問題,但是目前有問題;順藤摸瓜,查看各個(gè)時(shí)鐘控制器,發(fā)現(xiàn)時(shí)鐘設(shè)置路徑:HSE--》PREDIV2--》PLL2--》PREDIV1--》PLL--》SYSCLK;

發(fā)現(xiàn)其中有問題:HSE(25M),PREDIV2(源代碼設(shè)置是2分頻),PLL2(8倍頻),PREDIV1(9倍頻),SYSCLK是算不出72M的,這時(shí)72M的算法其實(shí)已經(jīng)超過72M,所以給USART2時(shí),波特率計(jì)算時(shí)會出現(xiàn)問題;將PREDIV2(改為5分頻就對了);

這就是為什么調(diào)用BSP_Init()或者SystemInit會出問題,他們都調(diào)用SetSysClock(),再調(diào)用SetSysClockTo72()【宏定義72M】,同時(shí)將系統(tǒng)時(shí)鐘改為36M時(shí)不會出問題,因?yàn)榇藭r(shí)調(diào)用的不是出問題的SetSysClockTo72(),而在之前用的是出錯(cuò)的SetSysClockTo72()卻沒有發(fā)現(xiàn)問題,是因?yàn)橄到y(tǒng)時(shí)鐘雖沒有在預(yù)設(shè)值,但是系統(tǒng)還足以正常工作,但是一旦添加串口,波特率設(shè)置就會有很大的偏差,數(shù)據(jù)傳輸就出錯(cuò)。

1:參考代碼其實(shí)里面是有很多問題的

2:我們應(yīng)該盡可能的多閱讀參考代碼,利用其中的資源,避免重復(fù)造輪子。

2:用串口終端軟件顯示字符串,連續(xù)發(fā)送幾個(gè)字符串時(shí),“xxxx/n”,包含了換行轉(zhuǎn)義字符,但是就是不會換行?

通過調(diào)試,發(fā)現(xiàn)在存儲空間,轉(zhuǎn)義字符‘/n’是正確的0x0a,

USART_SendString(USART2,Menu[0]);

USART_SendString(USART2,Menu[1]);

USART_SendString(USART2,Menu[2]);

USART_SendString(USART2,Menu[3]);

但是不連續(xù)發(fā)送就不會出現(xiàn)這種現(xiàn)象,或者一句句調(diào)試打印也不會出現(xiàn)不換行的現(xiàn)象,斷定是連續(xù)發(fā)送的時(shí)間間隔太短,軟件還沒來得及換行,就又重新顯示新數(shù)據(jù),那么就在USART_SendString的尾部加了延時(shí),就解決問題了。

來源:http://www.51hei.com/stm32/4117.html

審核編輯:何安

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

    關(guān)注

    25

    文章

    5274

    瀏覽量

    99942
  • STM32F
    +關(guān)注

    關(guān)注

    1

    文章

    40

    瀏覽量

    18403
  • 學(xué)習(xí)筆記
    +關(guān)注

    關(guān)注

    1

    文章

    28

    瀏覽量

    7762
收藏 0人收藏

    評論

    相關(guān)推薦

    AN-891: ADuC703x系列LIN波特率計(jì)算

    電子發(fā)燒友網(wǎng)站提供《AN-891: ADuC703x系列LIN波特率計(jì)算.pdf》資料免費(fèi)下載
    發(fā)表于 01-14 15:53 ?0次下載
    AN-891: ADuC703x系列LIN<b class='flag-5'>波特率</b><b class='flag-5'>計(jì)算</b>

    RS232通信的波特率設(shè)置說明

    RS232通信的波特率設(shè)置是確保數(shù)據(jù)正確傳輸?shù)年P(guān)鍵參數(shù)之一。以下是對RS232通信波特率設(shè)置的說明: 一、波特率的概念 波特率是指每秒傳輸?shù)谋忍財(cái)?shù)(bps),是衡量數(shù)據(jù)傳輸速度的重要指
    的頭像 發(fā)表于 12-10 16:26 ?2645次閱讀

    波特率設(shè)置中的常見問題解析

    在數(shù)字通信系統(tǒng)中,波特率是一個(gè)關(guān)鍵參數(shù),它直接影響數(shù)據(jù)傳輸?shù)男屎涂煽啃浴H欢趯?shí)際應(yīng)用中,波特率的設(shè)置往往會引起一些常見的問題。 一、波特率與數(shù)據(jù)速率的混淆 問題描述: 許多人會將波特率
    的頭像 發(fā)表于 11-22 10:06 ?1053次閱讀

    波特率與串行通信的關(guān)系 各種設(shè)備波特率轉(zhuǎn)換的方法

    波特率(Baud Rate)是串行通信中的一個(gè)重要參數(shù),它指的是信號傳輸?shù)乃俾剩磫挝粫r(shí)間內(nèi)傳輸?shù)姆枺ɑ蛐盘枲顟B(tài))的數(shù)量。在串行通信中,波特率決定了數(shù)據(jù)傳輸?shù)乃俣龋虼藢τ谕ㄐ判屎驮O(shè)備兼容性
    的頭像 發(fā)表于 11-22 10:01 ?1099次閱讀

    常見的波特率標(biāo)準(zhǔn)和協(xié)議

    波特率是指在數(shù)據(jù)通信中,每秒鐘傳輸?shù)姆枖?shù)(或比特?cái)?shù)),是衡量數(shù)據(jù)通信速度的重要指標(biāo)。在不同的通信協(xié)議和場景中,常見的波特率標(biāo)準(zhǔn)和協(xié)議有所不同。以下是一些常見的波特率標(biāo)準(zhǔn)和協(xié)議: 一、串口通信
    的頭像 發(fā)表于 11-22 09:56 ?4073次閱讀

    Wi-Fi與藍(lán)牙的波特率對比分析

    Wi-Fi與藍(lán)牙是兩種不同的無線通信技術(shù),它們在波特率(或稱數(shù)據(jù)傳輸速率)方面存在顯著的差異。以下是對Wi-Fi與藍(lán)牙波特率的對比分析: 一、Wi-Fi的波特率 概述 : Wi-Fi(無線局域網(wǎng)
    的頭像 發(fā)表于 11-22 09:54 ?1161次閱讀

    波特率的定義和計(jì)算方法 波特率與數(shù)據(jù)傳輸速度的關(guān)系

    。符號可以是數(shù)字、字母、聲音、圖像等,根據(jù)不同的符號來確定每個(gè)符號占據(jù)多長時(shí)間。 波特率計(jì)算方法 波特率計(jì)算方法通常有兩種: 基于傳輸速率和符號位數(shù) :
    的頭像 發(fā)表于 11-22 09:49 ?6383次閱讀

    波特率9600和115200的區(qū)別

    限性。 1. 波特率的定義與計(jì)算 波特率,或稱為波特,是衡量數(shù)據(jù)傳輸速率的單位,它表示每秒鐘傳輸?shù)男盘枂卧獢?shù)。在串行通信中,一個(gè)信號單元可以是一個(gè)比特(bit),也可以是多個(gè)比特組成的
    的頭像 發(fā)表于 10-18 14:56 ?3913次閱讀

    波特率與比特有何關(guān)系 波特率與數(shù)據(jù)傳輸速率的關(guān)系

    波特率(Baud Rate)和比特(Bit Rate)是衡量數(shù)據(jù)通信系統(tǒng)性能的兩個(gè)重要參數(shù),它們之間有著密切的關(guān)系,但并不完全相同。 波特率(Baud Rate): 波特率是指在數(shù)據(jù)
    的頭像 發(fā)表于 10-18 14:55 ?1887次閱讀

    uart波特率和傳輸頻率的關(guān)系 UART串口的常用波特率為多少

    UART(Universal Asynchronous Receiver/Transmitter)是一種廣泛使用的異步串行通信技術(shù),它允許兩臺設(shè)備之間進(jìn)行雙向數(shù)據(jù)傳輸。在UART通信中,波特率和傳輸
    的頭像 發(fā)表于 10-06 16:12 ?5051次閱讀
    uart<b class='flag-5'>波特率</b>和傳輸頻率的關(guān)系 UART串口的常用<b class='flag-5'>波特率</b>為多少

    串口通信中的波特率你真的了解嗎?差距竟如此重要!

    波特率在串口通信中的作用在串口通信中,波特率起著至關(guān)重要的作用。因?yàn)樵趥鬏敂?shù)據(jù)時(shí),發(fā)送方和接收方需要以相同的波特率進(jìn)行通信。如果兩端的波特率不同,那么就會出現(xiàn)數(shù)據(jù)丟失、傳輸錯(cuò)誤等問題,
    的頭像 發(fā)表于 08-27 11:46 ?2130次閱讀
    串口通信中的<b class='flag-5'>波特率</b>你真的了解嗎?差距竟如此重要!

    比特波特率計(jì)算公式及舉例說明

    比特(Bit Rate)和波特率(Baud Rate)的計(jì)算方法分別涉及數(shù)據(jù)傳輸?shù)牟煌矫妫旅鎸⒎謩e進(jìn)行說明。 比特計(jì)算 比特
    的頭像 發(fā)表于 08-05 15:18 ?1969次閱讀

    如何更改波特率

    我正在嘗試使用與此文檔相關(guān)的命令更改波特率:https://github.com/Arduinolibrary/DFRob ... _v0.23.pdf 這是固件版本:00200.9.4 當(dāng)我
    發(fā)表于 07-16 06:10

    如何使用示波器測量串口波特率

    詳細(xì)介紹如何使用示波器測量串口波特率,包括準(zhǔn)備工作、設(shè)置示波器、測試步驟、結(jié)果計(jì)算及注意事項(xiàng)等方面,旨在為讀者提供一份詳盡的指南。
    的頭像 發(fā)表于 05-27 16:25 ?6187次閱讀

    芯海應(yīng)用筆記:通用 MCU USART 自動波特率檢測

    本文檔介紹和說明芯海科技旗下 CS32 系列 MCU 的自動波特率檢測功能,并為不具備硬件自動波特率檢測的 MCU 產(chǎn)品提供替代軟件方法 。*附件:應(yīng)用筆記:芯海通用MCU USART自動波特
    發(fā)表于 05-16 11:42
    主站蜘蛛池模板: 黑人干日本美女 | aaa级黄影片| 免费在线观看的毛片 | 蜜桃最新网址 | 久久精品WWW人人爽人人 | babesvideos欧美最新 | G国产精品无马 | 亚洲午夜久久久精品影院 | gogogo高清在线观看 | 午夜精品久久久久久久爽牛战 | 亚洲精品免费在线视频 | 亚洲AV噜噜狠狠网址蜜桃尤物 | 国产亚洲一区二区三区啪 | 偷柏自拍亚洲综合在线 | 99pao成人国产永久免费视频 | 撕烂衣服扒开胸罩揉爆胸 | 欧式午夜理伦三级在线观看 | 亚洲一区二区三区乱码在线欧洲 | 先锋影音av无码第1页 | 欧美性色生活片天天看99顶级 | 久久亚洲人成国产精品 | 国产亚洲精品久久无码98 | 在线免费观看国产视频 | 秋霞电影院午夜伦高清 | jk白丝袜美女被男人桶 | 俄罗斯人与动ZOZ0 | 在线AV国产传媒18精品免费 | 日本无码色哟哟婷婷最新网站 | 免费毛片在线播放 | 可以看的黄页的网站 | 最近的2019中文字幕国语完整版 | 九九热视频 这里有精品 | 亚洲AV 中文字幕 国产 欧美 | 国产99久久九九免费精品无码 | 中文国产乱码在线人妻一区二区 | 国产女合集小岁9三部 | 色怕怕 | 狠狠色狠狠色综合日日小说 | 亚洲 欧美 制服 视频二区 | 亚洲色欲色欲综合网站 | 欲奴第一季在线观看全集 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品