chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

UART波特率計算及UART收發(fā)回顯實驗

瑞薩嵌入式小百科 ? 來源:野火電子 ? 2025-10-17 09:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

18.4

UART波特率計算

決定串口波特率的寄存器有BRR(Bite Rate Rigister),SEMR(Serial Extended Mode Rigister)和MDDR(Modulation Duty Register)。波特率與寄存器的值的公式如圖19_8 所示。N表示BRR寄存器的值,B是波特率,PCLK 是外設時鐘的頻率(單位:MHz)。BGDM(Baud Rate Generator Double-Speed Mode Select)在RA6M5中,SCI掛載在PHBIU(Peripheral High Speed Bus Interface Unit)總線上,使用時鐘PCLKA,該時鐘默認頻率為100MHz。

1c1cdd8a-a97d-11f0-8c8f-92fbcf53809c.png

圖19-8 波特率和誤差的計算公式

表1:波特率計算的相關參數描述

1c845c44-a97d-11f0-8c8f-92fbcf53809c.png

由于N存放的是整數,故只能將公式計算出來的值進行四舍五入,這樣肯定會存在誤差(Error)。例如,我們要配置當前波特率為115200bps。當 PCLK=100MHz,BGDM=0,ABCS=0,ABCSE=0,n=1,按照圖19_8公式,當前N為:

1cda8ad8-a97d-11f0-8c8f-92fbcf53809c.png

則當前誤差Error為:

1d3389a8-a97d-11f0-8c8f-92fbcf53809c.png

由于N是四舍五入取得的,故Error有可能是負數,因此這里取絕對值。

大多數時候會有多組參數符合波特率要求,由于誤差越大,收發(fā)出錯的可能性越大,雖然可以用奇偶校驗避免這個問題,但奇偶校驗無法解決丟包問題,因此我們一般會選擇誤差最小的那組參數。例如:同樣是要求波特率為115200bps,但此時BGDM=1,ABCS=0,ABCSE=0,n=0,則此時的N為:

1d932c6e-a97d-11f0-8c8f-92fbcf53809c.png

當前誤差Error為:

1de6db02-a97d-11f0-8c8f-92fbcf53809c.png

很明顯這組參數的誤差0.47%要小于上一組參數的 3.12%,因此我們會選擇這一組參數。

因為可選參數有很多組,所以我們需要遍歷所有可選的參數組合來尋找誤差小的那組參數,毫無疑問的對用戶來說是相當繁瑣的。瑞薩官方當然也想到了這一點,因此讀者在實際開發(fā)的過程中,可以直接使用FSP庫的R_SCI_UART_BaudCalculate函數來計算出適當的參數組。在通過Smart Configuration配置串口的時候,Smart Configuration也會將適當的參數組計算出來,存放到hal_data.c當中,用戶可以直接調用。

如果我們需要更小的誤差,則需要在SEMR的BRME位(Bit Rate Modulation Enable)寫1,使能比特率調制功能。此時波特率和寄存器之間的公式見圖19_9。

1e408ec2-a97d-11f0-8c8f-92fbcf53809c.png

圖19-9 使用比特率調制功能時的波特率和誤差的計算公式

該公式與未使用比特率調制功能時的公式大同小異,不管是BRR setting還是Error,都只是在分母添加了個系數(256/M),M是8位寄存器MDDR的值,取值范圍(128~256),這極大的降低了波特率的誤差。例如:

同樣是要求波特率為115200bps,但此時 BGDM=1,ABCS=0,ABCSE=0,n=0,M=184,則此時N為:

1ea98828-a97d-11f0-8c8f-92fbcf53809c.png

當前誤差Error為:

1efdae76-a97d-11f0-8c8f-92fbcf53809c.png

對比未使用波特率調制器時誤差為0.47%,使用后為0.014%,誤差降低到了原來的3%,效果可以說是相當的好,但是尋找效果最佳的M的值也是很繁瑣的。讀者只需調用FSP庫的R_SCI_UART_BaudCalculate函數,就能找到最適合的參數組。這個函數的源碼在r_sci_uart.c,如果讀者對其實現過程感興趣,可以翻看這個函數的源碼。

18.5

實驗1:UART收發(fā)回顯

UART只需兩根信號線即可完成雙向通信,對硬件要求低,使得很多模塊都預留UART接口來實現與其他模塊或者控制器進行數據傳輸,比如GSM模塊,WIFI模塊、藍牙模塊等等。在硬件設計時,注意還需要一根“共地線”。

我們經常使用UART來實現控制器與電腦之間的數據傳輸。這使得我們調試程序非常方便,比如我們可以把一些變量的值、函數的返回值、寄存器標志位等等通過UART發(fā)送到串口調試助手,這樣我們可以非常清楚程序的運行狀態(tài),當我們正式發(fā)布程序時再把這些調試信息去除即可。

我們不僅僅可以將數據發(fā)送到串口調試助手,我們還可以在串口調試助手發(fā)送數據給控制器,控制器程序根據接收到的數據進行下一步工作。

首先,我們來編寫一個程序實現開發(fā)板與電腦通信,在開發(fā)板上電時通過UART發(fā)送一串字符串給電腦,然后開發(fā)板進入中斷接收等待狀態(tài),如果電腦有發(fā)送數據過來,開發(fā)板就會產生中斷,我們在中斷服務函數接收數據,并馬上把數據返回發(fā)送給電腦。

18.5.1

硬件設計

為利用UART實現開發(fā)板與電腦通信,需要用到一個USB轉串口(UART)的芯片:CH340G。CH340G是一個USB總線的轉接芯片,實現USB轉 UART、USB轉lrDA紅外或者USB轉打印機接口,我們使用其USB轉UART功能。具體電路設計見圖19_10a、圖19_10b、圖19_10c。

在下面的三塊開發(fā)板的電路圖中,CH340G的TXD 引腳與MCU芯片UART的RXD引腳連接,CH340G 的RXD引腳與MCU芯片UART的TXD引腳連接。CH340G芯片集成在開發(fā)板上,其地線(GND)已與控制器的GND連通。

1f56077e-a97d-11f0-8c8f-92fbcf53809c.png

圖19-10a 啟明6M5開發(fā)板:USB轉串口硬件設計

1fbe262e-a97d-11f0-8c8f-92fbcf53809c.png

圖19-10b 啟明4M2開發(fā)板:USB轉串口硬件設計

2015d946-a97d-11f0-8c8f-92fbcf53809c.png

圖19-10c 啟明2L1開發(fā)板:USB轉串口硬件設計

表2:調試串口引腳分配

20823dde-a97d-11f0-8c8f-92fbcf53809c.png

20db755c-a97d-11f0-8c8f-92fbcf53809c.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5495

    瀏覽量

    127813
  • 串口
    +關注

    關注

    15

    文章

    1597

    瀏覽量

    81393
  • uart
    +關注

    關注

    22

    文章

    1288

    瀏覽量

    105541
  • 波特率
    +關注

    關注

    2

    文章

    319

    瀏覽量

    35313

原文標題:UART波特率計算及實驗1:UART收發(fā)回顯————瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(46)

文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RA UART實現串口波特率自適應

    Falling & Rising Edge trigger),然后等上位機發(fā)送波特率標識數據(LSB=1),這樣IRQ4分別兩次觸發(fā)GPT(Start->Stop)就能夠捕捉start bit的間隔時間,從而計算出上位機發(fā)送數據的波特
    發(fā)表于 06-07 15:25 ?2834次閱讀
    RA <b class='flag-5'>UART</b>實現串口<b class='flag-5'>波特率</b>自適應

    can波特率計算

    can波特率其實并不難計算,這里給出了can波特率的簡單計算,并給出了實例STM32的CAN波特率計算
    發(fā)表于 12-14 17:02 ?1.3w次閱讀
    can<b class='flag-5'>波特率</b><b class='flag-5'>計算</b>

    基于靈動微電子MM32F013x 系列的UART硬件自適應波特率

    嵌入式工程師在開發(fā)產品中經常會用到MCU的片上UART和其它模塊進行通信,為了在某些非正常的惡劣環(huán)境下能正常使用串口通信,可能需要對UART通信波特率進行自適應校準,在我們之前的微課堂中講解過關
    的頭像 發(fā)表于 02-15 09:09 ?5110次閱讀
    基于靈動微電子MM32F013x 系列的<b class='flag-5'>UART</b>硬件自適應<b class='flag-5'>波特率</b>

    什么是串口波特率?串口波特率的分類及應用詳解

    什么是串口波特率串口波特率是指串口通信系統(tǒng)中傳輸數據的速率。在UART串口通信中,數據以位(bit)的形式傳輸,波特率是指每秒鐘傳輸的位數。在串口通信中,
    的頭像 發(fā)表于 08-08 10:09 ?7711次閱讀
    什么是串口<b class='flag-5'>波特率</b>?串口<b class='flag-5'>波特率</b>的分類及應用詳解

    請問如何使用低功耗 UART (LP UART波特率補償?

    如何使用低功耗 UART (LP UART波特率補償?
    發(fā)表于 08-21 07:05

    如何為單個uart配置不同的波特率?

    自動檢測輸入波特率。D然后可以根據波特率來相應地起作用所以有人能告訴我如何為相同的UART組件配置不同的波特率嗎?注:實際上,如果我設置單獨的波特率
    發(fā)表于 10-31 10:00

    51波特率計算

    51波特率計算
    發(fā)表于 12-28 11:07 ?2次下載

    基于FPGA的波特率連續(xù)可調UART接口

    在FPGA上設計了一種波特率連續(xù)可調的UART接口,該接口符合RS-232C通信協(xié)議。將波特率轉換為比特持續(xù)時間,在固定工作時鐘頻率下通過改變比特持續(xù)時間來實現波特率的連續(xù)可調,并將比
    發(fā)表于 06-01 09:56 ?10次下載

    關于UART/CAN/PLL時鐘計算波特率的方法

    SWM系列關于UART/CAN/PLL等時鐘相關模塊,計算波特率的方法。
    的頭像 發(fā)表于 03-18 16:52 ?9165次閱讀

    串口通訊波特率出現誤差的因素

    串口通訊(UART)是一種異步通訊,收發(fā)雙方需要按照約定的波特率進行通訊。當波特率出現誤差時,會導致通訊出錯。那導致波特率出現誤差的因素都有
    的頭像 發(fā)表于 07-03 17:40 ?1.1w次閱讀

    MAX3108 UART波特率編程

    MAX3108是一款高性能通用異步收發(fā)器(UART),采用晶圓級封裝(WLP),具有許多硬件高級特性,從單獨的128字發(fā)送和接收FIFO到廣泛的硬件介導流控制。MAX3108的大部分功能依賴于時鐘的編程。因此,第一個編程任務是設置適當的
    的頭像 發(fā)表于 02-20 11:42 ?1234次閱讀
    MAX3108 <b class='flag-5'>UART</b>的<b class='flag-5'>波特率</b>編程

    串口波特率誤差產生的原因

    UART全稱Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)器,是一種非常常見的異步收發(fā)協(xié)議,在嵌入式領域應用十分廣泛。收發(fā)雙方按照
    的頭像 發(fā)表于 04-13 16:20 ?7942次閱讀
    串口<b class='flag-5'>波特率</b>誤差產生的原因

    CW32單片機UART波特率設置介紹

    CW32單片機UART波特率設置介紹
    的頭像 發(fā)表于 10-24 17:35 ?1552次閱讀
    CW32單片機<b class='flag-5'>UART</b><b class='flag-5'>波特率</b>設置介紹

    如何實現適用于多個標準波特率的全雙工UART接口

    電子發(fā)燒友網站提供《如何實現適用于多個標準波特率的全雙工UART接口.pdf》資料免費下載
    發(fā)表于 11-28 10:55 ?0次下載
    如何實現適用于多個標準<b class='flag-5'>波特率</b>的全雙工<b class='flag-5'>UART</b>接口

    uart波特率和傳輸頻率的關系 UART串口的常用波特率為多少

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