五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

GD32F303固件庫開發(fā)(9)----USART通過DMA收發(fā)

2022-12-13 15:27 作者:記帖  | 我要投稿

@TOC

概述

本章主要配置printf進(jìn)行打印。 查閱手冊可以得知,PA9、PA10為串口0的輸出和輸入口。需要樣片的可以加Qun申請:615061293。?

在這里插入圖片描述

視頻教學(xué)

https://www.bilibili.com/video/BV1QG411p7cw/


csdn課程

課程更加詳細(xì)。?https://download.csdn.net/course/detail/37144

樣品申請

https://www.wjx.top/vm/wFGhGPF.aspx#

硬件準(zhǔn)備

這里準(zhǔn)備了1塊開發(fā)板進(jìn)行驗(yàn)證,分別是GD32303C_START開發(fā)板。?

在這里插入圖片描述

DMA

DMA 控制器提供了一種硬件的方式在外設(shè)和存儲器之間或者存儲器和存儲器之間傳輸數(shù)據(jù),而無需 CPU 的介入,從而使 CPU 可以專注在處理其他系統(tǒng)功能上。DMA 控制器有 12 個(gè)通道(DMA0 有 7 個(gè)通道,DMA1 有 5 個(gè)通道)。每個(gè)通道都是專門用來處理一個(gè)或多個(gè)外設(shè)的存儲器訪問請求的。DMA 控制器內(nèi)部實(shí)現(xiàn)了一個(gè)仲裁器,用來仲裁多個(gè) DMA 請求的優(yōu)先級。 DMA 控制器和 Cortex?-M4 內(nèi)核共享系統(tǒng)總線。當(dāng) DMA 和 CPU 訪問同樣的地址空間時(shí),DMA 訪問可能會阻擋 CPU 訪問系統(tǒng)總線幾個(gè)總線周期??偩€矩陣中實(shí)現(xiàn)了循環(huán)仲裁算法來分配 DMA 與 CPU 的訪問權(quán),它可以確保 CPU 得到至少一半的系統(tǒng)總線帶寬。 主要特性:

  1. 傳輸數(shù)據(jù)長度可編程配置,最大到 65536;

  2. 12 個(gè)通道,并且每個(gè)通道都可配置(DMA0 有 7 個(gè)通道,DMA1 有 5 個(gè)通道);

  3. AHB 和 APB 外設(shè),片上閃存和 SRAM 都可以作為訪問的源端和目的端;

  4. 每個(gè)通道連接固定的硬件 DMA 請求;

  5. 支持軟件優(yōu)先級(低、中、高、極高)和硬件優(yōu)先級(通道號越低,優(yōu)先級越高);

  6. 存儲器和外設(shè)的數(shù)據(jù)傳輸寬度可配置:字節(jié),半字,字;

  7. 存儲器和外設(shè)的數(shù)據(jù)傳輸支持固定尋址和增量式尋址;

  8. 支持循環(huán)傳輸模式;

  9. 支持外設(shè)到存儲器,存儲器到外設(shè),存儲器到存儲器的數(shù)據(jù)傳輸;

  10. 每個(gè)通道有 3 種類型的事件標(biāo)志和獨(dú)立的中斷;

  11. 支持中斷的使能和清除。?

在這里插入圖片描述
  1. ?DMA0對應(yīng)通道。?

在這里插入圖片描述

DMA1對應(yīng)通道。?

在這里插入圖片描述

keil配置

microlib 進(jìn)行了高度優(yōu)化以使代碼變得很小。 它的功能比缺省 C 庫少,并且根本不具備某些 ISO C 特性。 某些庫函數(shù)的運(yùn)行速度也比較慢,如果要使用printf(),必須開啟。

在這里插入圖片描述

定義發(fā)送數(shù)據(jù)


使能串口


串口重定向


串口重定向后就可以使用printf進(jìn)行打印。

發(fā)送DMA初始化

在DMA初始化的時(shí)候,可以將需要發(fā)送的數(shù)據(jù)填充在memory_addr中,注意需要填上長度number。


使能DMA發(fā)送

開啟DMA0_3通道,這個(gè)通道位串口0的TX。


dma_flag_get()函數(shù)說明

dma_flag_get()函數(shù)功能是獲取DMAx通道y標(biāo)志位狀態(tài)。 主要的輸入?yún)?shù)有4個(gè)。?

在這里插入圖片描述

?在GD303固件庫中,使用DMA_INTF_FTFIF和DMA_FLAG_FTF是一樣的。?

在這里插入圖片描述

DMA發(fā)送測試代碼


DMA發(fā)送測試結(jié)果

在這里插入圖片描述

DMA循環(huán)發(fā)送

修改代碼。


修改為。


結(jié)果如下。

在這里插入圖片描述

定義接收數(shù)組


接收DMA初始化

在DMA初始化的時(shí)候,可以將需要接收的數(shù)據(jù)填充在memory_addr中,注意需要填上長度number。


使能串口空閑中斷

當(dāng)接收完數(shù)據(jù)之后,會進(jìn)入空閑中斷。


USART0_IRQHandler()函數(shù)

定義串口的中斷服務(wù)函數(shù),當(dāng)DMA接收完畢會進(jìn)入。


最后

以上的代碼會在Q_qun里分享。Qqun:615061293。 或者關(guān)注『記帖』,持續(xù)更新文章和學(xué)習(xí)資料!?


DMA接收測試結(jié)果

在這里插入圖片描述

?由于不是循環(huán)接收,當(dāng)接收長度超過數(shù)組的長度,就會照成數(shù)據(jù)混亂。 解決辦法可以增加接受數(shù)組的長度或者設(shè)用循環(huán)接收,但是循環(huán)接收會覆蓋之前接收到的數(shù)據(jù)。

DMA循環(huán)接收

修改代碼。


修改為


結(jié)果如下。?

在這里插入圖片描述


GD32F303固件庫開發(fā)(9)----USART通過DMA收發(fā)的評論 (共 條)

分享到微博請遵守國家法律
滕州市| 恩施市| 利辛县| 梅河口市| 菏泽市| 白朗县| 左云县| 荥阳市| 田东县| 青川县| 云南省| 和龙市| 策勒县| 靖西县| 泸水县| 嫩江县| 宁都县| 朝阳县| 红原县| 景洪市| 武宣县| 通许县| 延寿县| 威宁| 德钦县| 金塔县| 通海县| 罗田县| 长丰县| 梨树县| 碌曲县| 苗栗县| 靖西县| 茂名市| 土默特右旗| 于田县| 彰化市| 河池市| 丰城市| 宝鸡市| 安达市|