本文以stm32 F303K8為例,不同型號(hào)的DMA配置方法略有不同。
本文設(shè)計(jì)的實(shí)驗(yàn)如下:通過USART2接收數(shù)據(jù),并通過DMA將串口接受數(shù)據(jù)循環(huán)存入長(zhǎng)度為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)的參考手冊(cè)。

F303K8上USART2_RX的請(qǐng)求連接在DMA1的Channel6上。后續(xù)的配置都圍繞對(duì)DMA1的Channel6的配置。
DMA的結(jié)構(gòu)如下,下圖截取自F4系列的數(shù)據(jù)手冊(cè),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請(qǐng)求

DMA是在外設(shè)或軟件Requst之后才會(huì)發(fā)起傳輸,所以要使能外設(shè)發(fā)出DMA請(qǐng)求,這里是USART2_RX的請(qǐng)求。
-
STM32
+關(guān)注
關(guān)注
2309文章
11162瀏覽量
373448 -
dma
+關(guān)注
關(guān)注
3文章
582瀏覽量
105926 -
串口中斷
+關(guān)注
關(guān)注
0文章
67瀏覽量
14612 -
USART串口
+關(guān)注
關(guān)注
0文章
32瀏覽量
7280
發(fā)布評(píng)論請(qǐng)先 登錄
STM32標(biāo)準(zhǔn)庫(kù)、HAL庫(kù)和LL庫(kù)介紹
【NUCLEO-L476RG LL庫(kù)開發(fā)】STM32【LL庫(kù)】開發(fā)使用指南
STM32固件庫(kù)的使用方法
講講開發(fā)STM32的四種庫(kù)
STM32四種庫(kù)對(duì)比:寄存器、標(biāo)準(zhǔn)外設(shè)庫(kù)、HAL、LL
STM32CubeMX 實(shí)戰(zhàn)教程:看門狗實(shí)驗(yàn)(LL 庫(kù))
LL庫(kù)串口+DMA
使用LL庫(kù)開發(fā)STM32:GPIO口與外部中斷
stm32 LL庫(kù)開發(fā)-DMA使用方法
評(píng)論