色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32中DMA模塊的使用

h1654155971.7688 ? 來源:未知 ? 作者:李倩 ? 2018-06-11 08:49 ? 次閱讀

DMA(Direct Memory Access)常譯為“存儲器直接存取”。早在Intel的8086平臺上就有了DMA應用了。

一個完整的微控制器通常由CPU、存儲器和外設等組件構成。這些組件一般在結構和功能上都是獨立的,而各個組件的協調和交互就由CPU完成。如此一來,CPU作為整個芯片的核心,其處理的工作量是很大的。如果CPU先從A外設拿到一個數據送給B外設使用,同時C外設又需要D外設提供一個數據。。。這樣的數據搬運工作將使CPU的負荷顯得相當繁重。

嚴格的說,搬運數據只是CPU的比較不重要的一種工作。CPU最重要的工作室進行數據運算,從加減乘除到一些高級的運算,包括浮點、積分、微分、FFT等。CPU還需要負責復雜的中斷申請和響應,以保證芯片的實時性能。

理論上常見的控制外設,比如Usart、I2C、SPI甚至是USB通信接口,單純的利用CPU進行協議模擬也是可以實現的,比如51單片機經常使用I/O口模擬I2C協議通信。但這樣既浪費了CPU的資源,同時實現后的性能表現往往和使用專門的硬件模塊實現的效果相差甚遠。從這個角度來看,各個外設控制器的存在,無疑降低了CPU的負擔,解放了CPU的資源。

數據搬運這一工作占用了大部分的CPU資源,成為了降低CPU的工作效率的主要原因之一。于是需要一種硬件結構分擔CPU這一職能——DMA。

從數據搬運的角度看,如果要把存儲地址A的數值賦給另外一個地址上B的變量,CPU實現過程為首先讀出A地址上的數據存儲在一個中間變量,然后再轉送到B地址的變量上。使用DMA則不需要中間變量,直接將A地址的數值傳送到B地址的變量里。無疑減輕了CPU的負擔,也提高了數據搬運的效率。

stm32中DMA1有7個通道,DMA2有5個通道。DMA掛載的時鐘為AHB總線,其時鐘為72Mhz,所以可以實現高速數據搬運。

stm32的DMA1通道一覽表

stm32使用DMA的相關操作:

1、DMA的配置

void DMA_Configuration(void){ DMA_InitTypeDefDMA_InitStructure; //DMA設置: //設置DMA源:內存地址&串口數據寄存器地址 //方向:內存-->外設 //每次傳輸位:8bit //傳輸大小DMA_BufferSize=SENDBUFF_SIZE //地址自增模式:外設地址不增,內存地址自增1 //DMA模式:一次傳輸,非循環 //優先級:中 DMA_DeInit(DMA1_Channel4);//串口1的DMA傳輸通道是通道4 DMA_InitStructure.DMA_PeripheralBaseAddr = USART1_DR_Base; DMA_InitStructure.DMA_MemoryBaseAddr = (u32)SendBuff; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;//外設作為DMA的目的端 DMA_InitStructure.DMA_BufferSize = SENDBUFF_SIZE;//傳輸大小 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外設地址不增加 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//內存地址自增1 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;

//DMA_Mode_Normal(只傳送一次), DMA_Mode_Circular(不停地傳送) DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;//(DMA傳送優先級為中等) DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; DMA_Init(DMA1_Channel4, &DMA_InitStructure);}

注:

1、傳輸通道:

通過查表,串口1的發送對應的是DMA的通道4,所以此處選擇通道4.

2、DMA傳輸方式:

(1)DMA_Mode_Normal,正常模式,當一次DMA數據傳輸完后,停止DMA傳送,對于上例而言,就是DMA_PeripheralDataSize_Byte個字節的傳送完成后,就停止傳送。

(2)DMA_Mode_Circular

循環模式,當傳輸完一次后,重新接著傳送,永不停息。

2、外設的DMA方式設置

將串口1設置成DMA模式:

USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE);

3、待傳輸數據的定義和初始化

#define SENDBUFF_SIZE 10240vu8 SendBuff[SENDBUFF_SIZE];

for(i=0;i

4、開始DMA傳輸(使能對應的DMA通道)DMA_Cmd(DMA1_Channel4, ENABLE);

5、DMA傳輸的完成

while(DMA_GetFlagStatus(DMA1_FLAG_TC4) == RESET) { LED_1_REV; //LED翻轉 Delay(); //浪費時間 }

當傳輸完成后,就會跳出上面的死循環。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10870

    瀏覽量

    211871
  • STM32
    +關注

    關注

    2270

    文章

    10901

    瀏覽量

    356189
  • dma
    dma
    +關注

    關注

    3

    文章

    561

    瀏覽量

    100603

原文標題:聊聊STM32中DMA模塊的使用

文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32實例教程-DMA實驗

    在前面我們提到過 DMA,這一章我們就來學習 STM32F1 的DMA 使用。要實現的功能是:通過 K_UP 按鍵控制 DMA 串口 1 數據的傳送,在傳送過程
    發表于 05-24 09:20 ?1236次閱讀
    <b class='flag-5'>STM32</b>實例教程-<b class='flag-5'>DMA</b>實驗

    淺談STM32DMA模塊的使用

    的錯誤和偏差,歡迎“拍磚”和提出更正,蝦米在此感謝大家了。哈哈!什么是STM32DMA?其全稱是:Direct Memory Access;根據ST公司提供的相關信息,DMASTM32
    發表于 01-13 14:00

    STM32_DMA程序程序

    STM32 DMA程序程序,很好的學習資料,快來下載吧
    發表于 02-15 15:27 ?28次下載

    STM32 DMA應用與性能分析

    STM32 DMA應用與性能分析 學習資料,感興趣的小伙伴們可以瞧一瞧。
    發表于 09-06 17:33 ?11次下載

    基于STM32采用DMA實現方波的產生和捕獲

    基于STM32采用DMA實現方波的產生和捕獲
    發表于 09-26 08:53 ?23次下載
    基于<b class='flag-5'>STM32</b><b class='flag-5'>中</b>采用<b class='flag-5'>DMA</b>實現方波的產生和捕獲

    STM32F1開發指南筆記32----DMA

    本章介紹STM32F1的DMA。在本章,我們將利用STM32F1的DMA來實現串口數據傳送,并在TFTLCD
    發表于 12-04 19:21 ?20次下載
    <b class='flag-5'>STM32</b>F1開發指南筆記32----<b class='flag-5'>DMA</b>

    STM32斷與串口DMA通信

    本篇博文基于完成嵌入式實驗的目的,具體內容如下:學習stm32斷、DMA通信原理和編程方法。使用stm32tubemx和HAL庫分別完成以下編程練習:1. 用
    發表于 12-06 20:36 ?11次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>中</b>斷與串口<b class='flag-5'>DMA</b>通信

    STM32基礎-----DMA

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

    STM32 DMA串口接收不定長數據

    STM32 DMA串口接收不定長數據
    發表于 12-24 18:50 ?40次下載
    <b class='flag-5'>STM32</b>  <b class='flag-5'>DMA</b>串口接收不定長數據

    STM32之串口DMA接收不定長數據

    目錄STM32之串口DMA接收不定長數據引言DMA簡介什么是DMASTM32DMA資源
    發表于 12-24 19:03 ?30次下載
    <b class='flag-5'>STM32</b>之串口<b class='flag-5'>DMA</b>接收不定長數據

    STM32斷與DMA通信編程

    STM32斷與DMA通信編程中斷模式編程CubeMx創建項目Keil修改代碼串口中斷cubeMX創建項目Keil修改代碼DMA方式Keil修改代碼總結參考中斷模式編程用
    發表于 12-24 19:06 ?10次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>中</b>斷與<b class='flag-5'>DMA</b>通信編程

    STM32F1的DMA使用

    在前面我們提到過 DMA,這一章我們就來學習 STM32F1 的DMA 使 用。要實現的功能是:通過 K_UP 按鍵控制 DMA 串口 1 數據的傳送,在傳送過程
    的頭像 發表于 06-22 10:23 ?2867次閱讀
    <b class='flag-5'>STM32</b>F1的<b class='flag-5'>DMA</b>使用

    STM32L4直接訪問內存模塊(DMA)介紹

    電子發燒友網站提供《STM32L4直接訪問內存模塊(DMA)介紹.pdf》資料免費下載
    發表于 08-01 10:15 ?1次下載
    <b class='flag-5'>STM32</b>L4直接訪問內存<b class='flag-5'>模塊</b>(<b class='flag-5'>DMA</b>)介紹

    STM32 DMA傳輸的問題分析

    用戶使用STM32G473RET6芯片,開發環境STM32CubeMX+Keil(LL庫)。使用DMA1通道1,在半傳輸中斷和完全傳輸中斷里,拷貝ADC采集的數據。在應用過程中發現DMA
    的頭像 發表于 12-01 09:19 ?2973次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>DMA</b>傳輸的問題分析

    STM32DMA的五大問題

    1,DMA控制器的內部結構STM32DMA控制器是一種用于在外設和存儲器之間傳輸數據的專用硬件。DMA控制器的內部結構主要包括以下幾個關
    的頭像 發表于 12-10 08:00 ?1971次閱讀
    <b class='flag-5'>STM32</b>的<b class='flag-5'>DMA</b>的五大問題
    主站蜘蛛池模板: 高H内射NP古文| 日韩精品卡1卡2三卡四卡乱码| 久久精品美女| 日本精品久久久久中文字幕2| 777精品久无码人妻蜜桃| 精品国产在线亚洲欧美| 邪恶肉肉全彩色无遮盖| 国产精品久久久久久久人热 | 射漂亮黑b丝女| xxnx18日本| 欧美亚洲色帝国| 99re2.久久热最新地址| 猫咪www958ii| 7723手机游戏破解版下载| 欧美精品久久久久性色AV苍井| 99热久久这里只有精品| 果冻传媒在线播放| 亚洲精品视频免费看| 精品久久久久中文字幕| 99视频福利| 亚洲国产三级在线观看| 果冻传媒完整免费网站在线观看 | 久久精品av| 综合人妻久久一区二区精品| 久久一er精这里有精品| 伊人色啪啪天天综合婷婷| 久久是热频国产在线| 俄罗斯黄色大片| 亚洲天堂av2017| 快播在线电影网站| 国产精品99久久久久久AV下载| 武汉美女洗澡| 女人把腿张开叫男人桶免费视频| 99日韩精品| 亚洲免费黄色片| 涩涩免费网站| 精品福利一区| 99re久久热在线视频| 亚洲合集综合久久性色| 日本一本2017国产| 免费韩国伦理2017最新|