在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解STM32的DMA功能

CHANBAEK ? 來源:頭條號(hào)秋天滴風(fēng) ? 作者:頭條號(hào)秋天滴風(fēng) ? 2023-04-25 09:49 ? 次閱讀

本文將介紹STM32DMA功能;

①DMA介紹

②STM32F4-DMA功能框圖及詳解

③DMA的增量設(shè)置、模式、中斷

①DMA介紹

DMA是direct memory access的縮寫,即直接存儲(chǔ)器訪問;DMA是通過硬件在RAM和IO設(shè)備之間開辟一條通道,使得采集到的數(shù)據(jù)直接存到RAM,使得數(shù)據(jù)的傳輸不需要經(jīng)過CPU讀數(shù)據(jù)再將數(shù)據(jù)放入RAM、這樣極大提高了CPU的效率。

②STM32F4-DMA功能框圖及詳解

wKgZomRHMaKAQh-vAAFYKSnFrwM368.jpg

外設(shè)通道:

wKgaomRHMaOAX9sxAACx8iuP1NQ353.jpg

STM32F4具有2個(gè)DMA控制器,每個(gè)DMA控制器有8個(gè)數(shù)據(jù)流,每個(gè)數(shù)據(jù)流可以從8個(gè)外設(shè)請(qǐng)求中選擇一個(gè)作為該數(shù)據(jù)流的外設(shè)通道;外設(shè)通道就是數(shù)據(jù)流的源地址或者目標(biāo)地址;外設(shè)通道的選擇可以通過DMA數(shù)據(jù)流x的配置寄存器DMA_SxCR的CHSEL[2:0]位配置;

以下是DMA1的外設(shè)通道表:

wKgZomRHMaOAQ6E4AAIHP_-spxg373.jpg

數(shù)據(jù)流仲裁:當(dāng)同時(shí)存在多個(gè)數(shù)據(jù)流在工作時(shí),需要數(shù)據(jù)流仲裁器管理判斷數(shù)據(jù)流的優(yōu)先傳輸;數(shù)據(jù)流傳輸?shù)膬?yōu)先級(jí)可以通過配置控制寄存器DMA_SxCR的PL[1:0]位,來選擇優(yōu)先級(jí)為非常高、高、中、低;當(dāng)多個(gè)數(shù)據(jù)流的優(yōu)先級(jí)相同時(shí),數(shù)據(jù)流的編號(hào)越低、優(yōu)先級(jí)越高;

數(shù)據(jù)FIFO:

每個(gè)數(shù)據(jù)流都有一個(gè)4字(16字節(jié)、4個(gè)32位寄存器)FIFO(先進(jìn)先出存儲(chǔ)器緩沖區(qū)),DMA的傳輸具有FIFO模式和直接模式;

直接模式:當(dāng)出現(xiàn)DMA請(qǐng)求時(shí),會(huì)進(jìn)行數(shù)據(jù)的傳輸?shù)酱鎯?chǔ)器;若DMA的請(qǐng)求配置設(shè)置為存儲(chǔ)器到外設(shè)模式傳輸數(shù)據(jù)時(shí),DMA會(huì)將數(shù)據(jù)從存儲(chǔ)器預(yù)加載到FIFO中、當(dāng)外設(shè)觸發(fā)DMA請(qǐng)求時(shí)數(shù)據(jù)立即傳輸給外設(shè);

FIFO模式:當(dāng)數(shù)據(jù)量達(dá)到一定數(shù)量時(shí),進(jìn)行數(shù)據(jù)的傳輸;可以通過配置DMA_SxFCR的FTH[1:0]位來設(shè)置FIFO的閾值級(jí)別為FIFO的1/4 、2/4 、3/4。如果數(shù)據(jù)量達(dá)到閾值則FIFO中的數(shù)據(jù)將被傳輸?shù)侥繕?biāo)地址;

4-5、外設(shè)端口、存儲(chǔ)器端口:

wKgaomRHMaSAA87jAAHRHPAYMLE136.jpg

DMA1的控制器的存儲(chǔ)器端口接在AHB總線上,外設(shè)端口接在APB1外設(shè)上;所以DMA1可以控制數(shù)據(jù)在外設(shè)與存儲(chǔ)器之間傳輸,但不能實(shí)現(xiàn)數(shù)據(jù)在存儲(chǔ)器與存儲(chǔ)器之間傳輸;

DMA2的控制器的存儲(chǔ)器端口和外設(shè)端口都有接到AHB總線上說以與DMA1相比,DMA2比DMA1多一個(gè)數(shù)據(jù)在存儲(chǔ)器與存儲(chǔ)器之間傳輸?shù)哪J剑?/p>

③DMA的增量設(shè)置、模式、中斷

DMA的傳輸模式:DMA的傳輸模式有外設(shè)與外設(shè)之間的傳輸、外設(shè)與存儲(chǔ)器之間的傳輸、存儲(chǔ)器與存儲(chǔ)器之間的傳輸;模式的選擇可以通過DMA_SxCR寄存器的DIR[1:0]位控制;

DMA傳輸?shù)脑?、目的、長(zhǎng)度:

外設(shè)寄存器地址在DMA_SxPA寄存器中設(shè)置;

存儲(chǔ)器地址在DMA_SxM0AR寄存器中設(shè)置;

數(shù)據(jù)的傳輸量在寄存器DMA_CNDTRx中設(shè)置

傳輸數(shù)據(jù)的位寬在DMA_SxCR寄存器的PSIZE MSIZE位設(shè)置(盡量設(shè)置為一致)

DMA的增量設(shè)置:

通過設(shè)置DMA_SxCR寄存器中的PINC MINC位的狀態(tài),可以使得外設(shè)和存儲(chǔ)器在每次數(shù)據(jù)傳輸后地址遞增或地址不變;當(dāng)選擇為遞增模式后,地址的增量就是數(shù)據(jù)的位寬

循環(huán)模式:循環(huán)模式用于循環(huán)處理緩存區(qū)和連續(xù)的數(shù)據(jù)傳輸(ADC的掃描模式),可以通過DMA_SxCR寄存器中的CIRC位來選擇為循環(huán)模式;循環(huán)模式下當(dāng)一輪數(shù)據(jù)傳輸完成后,下一次開始的地址和上一次的數(shù)據(jù)傳輸?shù)刂芬粯樱?/p>

DMA的單次傳輸和突發(fā)傳輸:

DMA有單次傳輸和突發(fā)傳輸,DMA控制器可以產(chǎn)生4、8、16個(gè)節(jié)拍的增量突發(fā)傳輸(原本一次傳輸一個(gè)數(shù)據(jù)位寬,4個(gè)節(jié)拍就是4個(gè)數(shù)據(jù)位寬一次性一起傳輸);突發(fā)傳輸?shù)拇笮⊥ㄟ^DMA_SxCR寄存器中的MBURST[1:0]和PBURST[1:0]位對(duì)兩個(gè)AHB端口獨(dú)立配置;

在突發(fā)傳輸下、AHB的總線仲裁器會(huì)一直授權(quán)給DMA主總線AHB的傳輸會(huì)鎖定其它總線暫時(shí)使用不了,使得突發(fā)傳輸不可被打斷從而保證了數(shù)據(jù)的一致性;

每個(gè)DMA數(shù)據(jù)流在傳輸?shù)臅r(shí)候可以觸發(fā)以下中斷:

wKgZomRHMaSAD6olAADkFwmQoDA028.jpg

在DMA_xISR中可以設(shè)置、查看狀態(tài);

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7518

    瀏覽量

    164072
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10889

    瀏覽量

    212373
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10915

    瀏覽量

    356735
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    566

    瀏覽量

    100741
  • STM32F4
    +關(guān)注

    關(guān)注

    3

    文章

    194

    瀏覽量

    28104
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32CubeMx的初始配置順序是怎么影響DMA功能

    ?經(jīng)常有STM32開發(fā)者基于STM32CubeMx進(jìn)行配置并生成基于HAL庫的初始化代碼,當(dāng)涉及到DMA功能時(shí),發(fā)現(xiàn)DMA
    的頭像 發(fā)表于 10-13 10:14 ?3100次閱讀
    <b class='flag-5'>STM32</b>CubeMx的初始配置順序是怎么影響<b class='flag-5'>DMA</b><b class='flag-5'>功能</b>的

    STM32實(shí)例教程-DMA實(shí)驗(yàn)

    在前面我們提到過 DMA,這一章我們就來學(xué)習(xí) STM32F1 的DMA 使用。要實(shí)現(xiàn)的功能是:通過 K_UP 按鍵控制 DMA 串口 1 數(shù)
    發(fā)表于 05-24 09:20 ?1269次閱讀
    <b class='flag-5'>STM32</b>實(shí)例教程-<b class='flag-5'>DMA</b>實(shí)驗(yàn)

    STM32 DMA使用詳解

    DMASTM32 DMA使用詳解1、畫圖Cortex-M3內(nèi)部結(jié)構(gòu)圖,要體現(xiàn)相應(yīng)的總線,并標(biāo)注其作用。Icode:程序存在Flash中,通過ICode(Instruction Code)總線
    發(fā)表于 08-12 07:01

    什么是DMA?DMA有何功能

    stm32F1DMA詳解1、問題:什么是DMA?回答:DMA,全稱為:Direct Memory Access,即直接存儲(chǔ)器訪問簡(jiǎn)而言之,DMA
    發(fā)表于 12-09 07:35

    STM32串口DMA問題詳解

    昨天晚上在STM32串口DMA的問題上糾結(jié)了好長(zhǎng)時(shí)間,所以今天上午寫篇博客來談?wù)勎覍?duì)串口DMA發(fā)送的理解。
    的頭像 發(fā)表于 10-27 16:16 ?8469次閱讀
    <b class='flag-5'>STM32</b>串口<b class='flag-5'>DMA</b>問題<b class='flag-5'>詳解</b>

    STM32F1的ADC2如何使用DMA功能 USART過載錯(cuò)誤Overrun error

    STM32F1的ADC2如何使用DMA功能,USART過載錯(cuò)誤Overrun error
    的頭像 發(fā)表于 03-14 14:42 ?8171次閱讀
    <b class='flag-5'>STM32</b>F1的ADC2如何使用<b class='flag-5'>DMA</b><b class='flag-5'>功能</b> USART過載錯(cuò)誤Overrun error

    STM32的ADC1采集多條通道 可以不使用DMA功能嗎?

    STM32的ADC1采集多條通道,可以不使用DMA功能嗎?
    的頭像 發(fā)表于 03-14 14:46 ?5881次閱讀
    <b class='flag-5'>STM32</b>的ADC1采集多條通道 可以不使用<b class='flag-5'>DMA</b><b class='flag-5'>功能</b>嗎?

    STM32 DMA詳解

    事情。 DMA 控制器基于復(fù)雜的總線矩陣架構(gòu),將功能強(qiáng)大的雙 AHB 主總線架構(gòu)與獨(dú)立的 FIFO 結(jié) 合在一起,優(yōu)化了系統(tǒng)帶寬,下圖①處,可以看出雙 AHB 主總線架構(gòu)與獨(dú)立的 FIFO的結(jié)構(gòu)
    的頭像 發(fā)表于 10-27 14:47 ?1.1w次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>DMA</b><b class='flag-5'>詳解</b>

    16、STM32——DMA詳解

    1、DMA簡(jiǎn)介DMA(Direct Memory Access) :直接存儲(chǔ)器存取,是單片機(jī)的一個(gè)外設(shè),它的主要功能是用來搬數(shù)據(jù),但是不需要占用 CPU,即在傳輸數(shù)據(jù)的時(shí)候, CPU 可以干其他
    發(fā)表于 12-02 13:51 ?21次下載
    16、<b class='flag-5'>STM32</b>——<b class='flag-5'>DMA</b><b class='flag-5'>詳解</b>

    STM32基礎(chǔ)-----DMA

    STM32基礎(chǔ)-------DMA
    發(fā)表于 12-20 19:35 ?11次下載
    <b class='flag-5'>STM32</b>基礎(chǔ)-----<b class='flag-5'>DMA</b>

    STM32 HAL CubeMX 串口IDLE接收空閑中斷+DMA

    關(guān)于DMA原理部分講解,及CubeMx配置部分,請(qǐng)參考該文章【STM32】HAL庫 STM32CubeMX教程十一—DMA (串口DMA發(fā)送
    發(fā)表于 12-20 19:39 ?31次下載
    <b class='flag-5'>STM32</b> HAL CubeMX 串口IDLE接收空閑中斷+<b class='flag-5'>DMA</b>

    STM32單片機(jī)實(shí)現(xiàn)DMA+ADC+UART功能

    。于是想到了ADC采樣的數(shù)據(jù)用DMA功能存儲(chǔ),并通過串口打印。但是串口打印依然要占用單片機(jī)時(shí)間,那能不能串口數(shù)據(jù)的輸出也采用 DMA功能呢?這樣ADC采樣的數(shù)據(jù)通過
    發(fā)表于 12-28 19:25 ?34次下載
    <b class='flag-5'>STM32</b>單片機(jī)實(shí)現(xiàn)<b class='flag-5'>DMA</b>+ADC+UART<b class='flag-5'>功能</b>

    STM32串口收發(fā)數(shù)據(jù)為什么要使用DMA

    CPU處理。因此,大量數(shù)據(jù)拷貝時(shí),使用DMA可以釋放CPU資源,相關(guān)文章推薦:詳解STM32中的DMA原理。
    的頭像 發(fā)表于 02-12 13:22 ?6009次閱讀
    <b class='flag-5'>STM32</b>串口收發(fā)數(shù)據(jù)為什么要使用<b class='flag-5'>DMA</b>

    STM32F1的DMA使用

    在前面我們提到過 DMA,這一章我們就來學(xué)習(xí) STM32F1 的DMA 使 用。要實(shí)現(xiàn)的功能是:通過 K_UP 按鍵控制 DMA 串口 1
    的頭像 發(fā)表于 06-22 10:23 ?2933次閱讀
    <b class='flag-5'>STM32</b>F1的<b class='flag-5'>DMA</b>使用

    STM32G4 Advanced Timer Break功能詳解

    電子發(fā)燒友網(wǎng)站提供《STM32G4 Advanced Timer Break功能詳解.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 15:09 ?1次下載
    <b class='flag-5'>STM32</b>G4 Advanced Timer Break<b class='flag-5'>功能</b><b class='flag-5'>詳解</b>
    主站蜘蛛池模板: 国产精品17p| 神马午夜影视| 成人国产激情福利久久精品| 天堂资源最新版在线官网| 黄a网站| 国产一线在线观看| 黄鳝钻进下面好爽小说| 国产精品久久新婚兰兰| 91伊人久久大香线蕉| 午夜视频在线免费看| 欧美高h| 日本老师69xxxxxxxxx| 91免费视频网| 456影院第一| 717影院理伦午夜论八戒| 欧美丝袜一区| 亚洲精品成人在线| 色综合久久综合欧美综合网| 男人的天堂免费网站| 国产卡1卡2卡三卡网站免费| 精品毛片视频| freesex性| 高清国产一区二区三区| 激情有码| 夜夜综合网| 久久精品乱子伦免费| vvvv98国产成人综合青青| 99久久免费中文字幕精品| 乱子伦xxxx厨房| 婷婷五月在线视频| 亚洲成人自拍| 日本三级日产三级国产三级| 日韩一级在线观看| 狠狠色狠狠色综合网| 天天干天天做天天操| 视频在线免费观看网址| 永久黄网站色视频免费| 欧美精品专区55页| 久久综合久久精品| 激情亚洲色图| 天堂网站|