GD32 DMA串列埠接收傳送

2021-10-23 07:20:49 字數 793 閱讀 9124

簡介:gd32其實跟stm32差不多,有些程式簡直可以在兩個微控制器上直接執行,但用gd32的庫函式貌似比stm32的庫函式比較複雜(可能是因為剛接觸所以很多都沒了解到,不熟悉),最近用到了串列埠dma傳送,但看官方的demo又沒寫得很仔細,就上網搜尋了一下並記錄下來。由於只用到的串列埠的dma傳送,並沒有用到接收,所以本文只有傳送,接收以後有空再補上。

①先確認所用串列埠傳送是屬於哪個dma和哪乙個通道

在這個工程中,我用的是串列埠2,所以應該傳送對應的是dma0的ch1,這一步是十分重要的,要是設定錯誤就白做了。

②初始化相對應的串列埠

這部分就略過了,串列埠初始化都差不多。

③初始化相對應的dma通道

需要注意的是千萬別忘了使能對應時鐘!

其中usart2_data_address指的是串列埠2存要傳送資料的暫存器的位址,我用的微控制器型號是gd32f103c8

#define usart2_data_address      ((usart_base+(0x00000400u))+ (0x00000004u))

void uart2_dma_txinit(void)

④編寫dma傳送函式

void usart2_dma_send(uint8_t *buffer,uint16_t len)

while(reset == dma_flag_get(dma0, dma_ch1, dma_flag_ftf));

}

GD32E230串列埠DMA傳送接收

串列埠使用dma可以節省mcu執行的時間,節省效率,把微控制器內部資源用到最優化。串列埠dma就是配置好初始化後,呼叫串列埠傳送程式時先把要傳送的資料儲存到dma快取,然後使能dma傳送,接下來串列埠就由硬體自動傳送資料,軟體可以繼續處理其他功能。串列埠初始化分一下幾個階段 gpio初始化 串列埠初...

stm32之串列埠DMA傳送與接收

硬體環境 stm32f103zet6戰艦開發板 軟體環境 mdk5 串列埠除錯助手 概念解析 dma direct memory access 直接儲存器訪問 dma作用 用來傳輸資料的,在 傳輸呢,可以在外設和儲存器之間,也可以在儲存器和儲存器之間。dma傳輸方式無需cpu直接控制傳輸,能使cpu...

STM32CubeMX串列埠 DMA接收不定長資料

void mx usart1 uart init void hal uart enable it huart1,uart it idle 使能空閒中斷 hal uart receive dma huart1,rxdmabuf 1,rxbuf 1 size 啟動dma接收 該函式在usart.c檔案下...