前言
今天總結(jié)“STM32F103DMA_USART”,DMA學(xué)習(xí)過(guò)計(jì)算機(jī)人都明白它是什么意思,就是直接存儲(chǔ)器存?。―irect Memory Access),很多人都知道它的意思,但基本上不知道的怎么用,或者不知道它的用途。其實(shí)DMA在計(jì)算機(jī)里面是非常重要的,它可以減少CPU的資源。大家都用U盤(pán)拷貝過(guò)數(shù)據(jù),這就是很常見(jiàn)的DMA應(yīng)用。假如不適用DMA傳輸數(shù)據(jù),我們拷貝大文件的時(shí)候,我們的電腦操作其他應(yīng)用程序的時(shí)候估計(jì)會(huì)把電腦卡死。
今天就總結(jié)一下DMA常用于串口通信的例子,實(shí)例源代碼請(qǐng)自行下載。由于時(shí)間有限,只講解了DMA發(fā)送及中斷,接收這一塊還沒(méi)有來(lái)得及整理,后期我將以實(shí)例講解,請(qǐng)持續(xù)關(guān)注。
下載
提供下載的“軟件工程”都是在硬件板子上進(jìn)行多次測(cè)試、并保證沒(méi)問(wèn)題才上傳至360云盤(pán)。
今天的軟件工程下載地址(360云盤(pán)):
https://yunpan.cn/cSdzWimMT8v7S訪問(wèn)密碼 4a02
STM32F10x的資料可以在我360云盤(pán)下載:
https://yunpan.cn/crBUdUGdYKam2訪問(wèn)密碼 ca90
內(nèi)容講解
工程概要說(shuō)明: 今天使用DMA1通道4(這里是重點(diǎn),下面講解)傳輸串口發(fā)送的數(shù)據(jù)。工程配置串口使能DMA傳輸,DMA按要求發(fā)送完成會(huì)響應(yīng)DMA中斷,這時(shí)在中斷里變化一次LED,以提示的作用。關(guān)于串口使用DMA接收的原理類(lèi)似,后期我會(huì)舉例講解。
提供的工程以簡(jiǎn)單為原則,詳細(xì)中文注釋,方便自己方便大家。
關(guān)于“STM32F103 DMA_USART”我把重要的幾點(diǎn)在下面分別講述:
一、RCC時(shí)鐘
該函數(shù)位于bsp.c文件下面;
注意:
這里是使用RCC_AHBPeriphClockCmd,我開(kāi)始調(diào)試的時(shí)候,使用RCC_APB1PeriphClockCmd,怎么都不行,結(jié)果我才發(fā)現(xiàn)時(shí)鐘錯(cuò)了。
二、DMA的NVIC配置
該函數(shù)位于bsp.c文件下面;
由于使用DMA中斷,這里必須配置才能響應(yīng)中斷。
三、DMA輸出配置
該函數(shù)位于main.c文件下面;
主要就是我框出來(lái)的兩點(diǎn)比較重要,串口發(fā)送數(shù)據(jù)寄存器地址,中斷需要配置。
這里我封裝成一個(gè)發(fā)送函數(shù)接口,所以下面是直接調(diào)用這個(gè)函數(shù)。
四、DMA中斷
該函數(shù)位于stm32f10x_it.c文件下面;
提出來(lái)說(shuō),有兩點(diǎn):1、函數(shù)必須有。2、需要清除標(biāo)志位。
五、今天的重點(diǎn)
為什么是“DMA1_Channel4”,開(kāi)始學(xué)習(xí)的人很納悶,其實(shí)這里是規(guī)定的(定的要求,見(jiàn)手冊(cè))。
說(shuō)明
今天提供的軟件工程基于STM32F103大容量芯片,其實(shí)只要適當(dāng)修改工程的部分配置,STM32F1的芯片都適用。
-
dma
+關(guān)注
關(guān)注
3文章
554瀏覽量
100203 -
USART
+關(guān)注
關(guān)注
1文章
195瀏覽量
30739 -
STM32F10
+關(guān)注
關(guān)注
0文章
45瀏覽量
15590
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論