久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3585|回復: 0
打印 上一主題 下一主題
收起左側

STM32學習歷程之DMA介紹

[復制鏈接]
跳轉到指定樓層
樓主
ID:82083 發表于 2015-6-9 02:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

DMA控制器介紹

DMA控制器提供7個數據通道的訪問。由于外設實現了向存儲器的映射,因此數據對來自或發向外設的數據傳輸,也可以像內存之間的數據傳輸一樣管理。

  • 1.DMA寄存器結構

DMA寄存器結構,DMA_Channel_TypeDef和DMA_TypeDef在文件“stm32f10x_map.h”定義如下:

typedef struct

{

  vu32CCR;

  vu32CNDTR;

  vu32CPAR;

  vu32CMAR;

}DMA_Channel_TypeDef;

typedef struct

{

  vu32ISR;

  vu32IFCR;

} DMA_TypeDef;

DMA寄存器介紹:

ISR: DMA中斷狀態寄存器

IFCR: DMA中斷標志位清除寄存器

CCRx: DMA通道x設置寄存器

CNDTRx:DMA通道x待傳輸數據數目寄存器

CPARx: DMA通道x外設地址寄存器

CMARx: DMA通道x內存地址寄存器

  • 2.DMA庫函數

2.1 函數DMA_DeInit

函數原形 :voidDMA_DeInit(DMA_Channel_TypeDef* DMA_Channelx)

函數功能:將DMA的通道x寄存器重設為缺省值

函數參數:DMA_Channelx中x取值為1-7來選擇通道

2.2 函數DMA_Init

函數原形 :voidDMA_Init(DMA_Channel_TypeDef* DMA_Channelx, DMA_InitTypeDef*DMA_InitStruct)

函數功能:根據DMA_InitStruct中指定的參數初始化DMA的通道x寄存器

函數參數:DMA_Channelx中x取值為1-7來選擇通道

          DMA_InitStruct:指向結構DMA_InitTypeDef的指針,包含了DMA通道x的配置信息

參數介紹:DMA_PeripheralBaseAddr  該參數用以定義DMA外設基地址

         DMA_MemoryBaseAddr   該參數用以定義DMA內存基地址

         DMA_DIR  DMA_DIR規定了外設是作為數據傳輸的目的地還是來源

          DMA_BufferSize  用以定義指定DMA通道的DMA緩存的大小,單位為數據單位

         DMA_PeripheralInc  用來設定外設地址寄存器遞增與否

         DMA_MemoryInc  用來設定內存地址寄存器遞增與否

         DMA_PeripheralDataSize  設定了外設數據寬度

         DMA_MemoryDataSize  設定了外設數據寬度

         DMA_Mode   設置了工作模式

         DMA_Priority   設定DMA通道x的軟件優先級

         DMA_M2M   使能DMA通道的內存到內存傳輸

2.3 函數DMA_Cmd

函數原形 :voidDMA_Cmd(DMA_Channel_TypeDef* DMA_Channelx, FunctionalStateNewState)

函數功能 :使能或者失能指定的通道x

參數描述 :DMAChannelx:x可以是1,2…,或者7來選擇DMA通道x

          NewState:DMA通道x的新狀態。這個參數可以取:ENABLE或者DISABLE

2.4 函數DMA_ITConfig

函數原形 :voidDMA_ITConfig(DMA_Channel_TypeDef* DMA_Channelx, u32 DMA_IT,

                            FunctionalState NewState)

函數功能 :使能或者失能指定的通道x中斷

函數參數 :DMAChannelx:x可以是1,2…,或者7來選擇DMA通道x

           DMA_IT:待使能或者失能的DMA中斷源,使用操作符“|”可以同時選中多個DMA中斷源

2.5 函數DMA_GetCurrDataCounte

函數原形 :u16DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMA_Channelx)

函數功能:返回當前DMA通道x剩余的待傳輸數據數目

函數參數 :DMAChannelx:x可以是1,2…,或者7來選擇DMA通道x

函數返回:當前DMA通道x剩余的待傳輸數據數目

2.6 函數DMA_GetFlagStatus

函數原形 :FlagStatusDMA_GetFlagStatus(u32 DMA_FLAG)

函數功能:檢查指定的DMA通道x標志位設置與否

函數參數:DMA_FLAG:待檢查的DMA標志位

函數返回:DMA_FLAG的新狀態(SET或者RESET)

2.7 函數DMA_ClearFlag

函數原形 :voidDMA_ClearFlag(u32 DMA_FLAG)

函數功能 :清除DMA通道x待處理標志位

函數參數:DMA_FLAG:待清除的DMA標志位,使用操作符“|”可以同時選中多個DMA標志位

2.8 函數DMA_GetITStatus

函數原形 :ITStatusDMA_GetITStatus(u32 DMA_IT)

函數功能:檢查指定的DMA通道x中斷發生與否

函數參數:DMA_IT:待檢查的DMA中斷源

函數返回:DMA_IT的新狀態(SET或者RESET)

2.9 函數DMA_ClearITPendingBit

函數原形 :voidDMA_ClearITPendingBit(u32 DMA_IT)

函數功能 :清除DMA通道x中斷待處理標志位

函數參數:DMA_IT:待清除的DMA中斷待處理標志位


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 综合中文字幕 | 日韩欧美二区 | 国产三级精品三级在线观看四季网 | 国产精品精品视频 | 亚洲高清久久 | 亚洲激情综合网 | 久久国产欧美日韩精品 | 国产午夜精品久久久久免费视高清 | 免费三级网 | 午夜精品久久 | 日韩中文电影 | 成人在线视频一区二区三区 | 国产亚洲精品久久久久动 | 日韩免费视频一区二区 | 请别相信他免费喜剧电影在线观看 | 精品国产精品一区二区夜夜嗨 | 一区二区三区不卡视频 | 老头搡老女人毛片视频在线看 | 精品九九九| 欧美一级久久 | 欧美一区二区三区视频 | 一区二区三区四区在线视频 | 久久精品国产一区二区三区 | 国产精品九九九 | 日韩二 | 久久久久久久91 | 少妇一区二区三区 | 成人影院av | 另类一区| 黄色免费av | 国产特级毛片 | 精品国产不卡一区二区三区 | 99热在这里只有精品 | 精品久久久久久久 | 97免费在线观看视频 | 中文字幕99| 久久精品视频9 | 色就干 | 中文一区| 免费在线一区二区 | 91在线免费视频 |