本文以stm32 F303K8為例,不同型號(hào)的DMA配置方法略有不同。
本文設(shè)計(jì)的實(shí)驗(yàn)如下:通過USART2接收數(shù)據(jù),并通過DMA將串口接受數(shù)據(jù)循環(huán)存入長度為100的uint8型數(shù)組。
思維導(dǎo)圖總覽:
1- 時(shí)鐘配置
有stm32基本知識(shí)應(yīng)該知道Stm32的每個(gè)外設(shè)在使用前都需要開啟其時(shí)鐘,否則模塊不運(yùn)行。
2 - DMA配置
使用DMA前要確定外設(shè)與DMA連接的通道,不用系列芯片的硬件設(shè)計(jì)略有不同,因此要去查對(duì)應(yīng)型號(hào)的參考手冊。
F303K8上USART2_RX的請求連接在DMA1的Channel6上。后續(xù)的配置都圍繞對(duì)DMA1的Channel6的配置。
DMA的結(jié)構(gòu)如下,下圖截取自F4系列的數(shù)據(jù)手冊,F(xiàn)3的DMA結(jié)構(gòu)與F1的相同,但不影響借用F4的DMA結(jié)構(gòu)圖對(duì)配置方法進(jìn)行理解。
要配置的內(nèi)容及API如下:
這里沒有使用DMA的中斷,因此沒有對(duì)具體的中斷進(jìn)行使能。
3 - 使能外設(shè)發(fā)出DMA請求
DMA是在外設(shè)或軟件Requst之后才會(huì)發(fā)起傳輸,所以要使能外設(shè)發(fā)出DMA請求,這里是USART2_RX的請求。
-
STM32
+關(guān)注
關(guān)注
2258文章
10828瀏覽量
352490 -
dma
+關(guān)注
關(guān)注
3文章
552瀏覽量
99931 -
串口中斷
+關(guān)注
關(guān)注
0文章
64瀏覽量
13798 -
USART串口
+關(guān)注
關(guān)注
0文章
32瀏覽量
6784
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論