GD32E230串列埠DMA通訊

2021-10-10 01:54:33 字數 452 閱讀 5043

void

usart_dma_init

(void

)

void mydma_send(uint8_t *buffer,uint16_t size)

為了加快**執行速度,我沒有使用庫函式方法,直接操作暫存器。

在傳送dma時需要先失能dma,之後設定傳送的陣列的位址和要傳送的資料位元組數,再使能dma。

void rs_485_send(uint8_t *psrc_data,int num)

因為我使用的rs485介面傳送資料,所以這裡需要操作485的使能口,使能完485後執行mydma_send()函式。資料就傳送到dma的快取裡面,後面的就交給dma去傳送資料就行了,檢查usart_flag_tc標誌,保證資料傳送完成失能485的使能口。

GD32E230串列埠DMA傳送接收

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

ROS stm32F4串列埠 DMA通訊

本博文基於stm32f407,利用uart3傳送資料,並由uart3接收ros通過串列埠傳送的資料後由uart1傳送回ros。以下,主要針對於除錯過程中的問題的總結 傳送協議 01 2 11 0xaa 0xadata 初始化 mydma config inter dma1 stream3,dma c...

STM32 串列埠DMA(一)

今天調usart,資料在晶元內部用dma傳到串列埠快取,發現dma真的很好,很快,而且不消耗系統資源。只是在傳輸完的時候中斷的標誌置位。下面解釋一下程式。void dma configuration void 再弄幾個重要的語句。這裡是開始dma傳輸前的一些準備工作,將usart1模組設定成dma方...