STM32库函数功能详解(8)
六、DMA控制器(DMA)
DMA寄存器结构
DMA寄存器结构,DMA_Cannel_TypeDef和DMA_TypeDef,在文件“stm32f10x_map.h”中定义如下:
typedef struct {
vu32 CCR; vu32 CNDTR; vu32 CPAR; vu32 CMAR; }
DMA_Channel_TypeDef;
typedef struct {
vu32 ISR; vu32 IFCR; }
DMA_TypeDef;
DMA库函数
1 函数DMA_DeInit
功能描述:将DMA的通道x寄存器重设为缺省值 例:
DMA_DeInit(DMA_Channel2);
2 函数DMA_Init
功能描述:根据DMA_InitStruct中指定的参数初始化DMA的通道x寄存器
DMA_InitStruct:指向结构DMA_InitTypeDef的指针,包含了DMA通道x的配置信息
DMA_InitTypeDef structure
DMA_InitTypeDef定义于文件“stm32f10x_dma.h”:
typedef struct {
u32 DMA_PeripheralBaseAddr; u32 DMA_MemoryBaseAddr;
u32 DMA_DIR; u32 DMA_BufferSize; u32 DMA_PeripheralInc; u32 DMA_MemoryInc;
u32 DMA_PeripheralDataSize; u32 DMA_MemoryDataSize; u32 DMA_Mode;
u32 DMA_Priority; u32 DMA_M2M; }
DMA_InitTypeDef;
36
DMA_PeripheralBaseAddr
该参数用以定义DMA外设基地址
DMA_MemoryBaseAddr
该参数用以定义DMA内存基地址
DMA_DIR
DMA_DIR规定了外设是作为数据传输的目的地还是来源。 DMA_DIR_PeripheralDST:外设作为数据传输的目的地 DMA_DIR_PeripheralSRC:外设作为数据传输的来源
DMA_BufferSize
DMA_BufferSize用以定义指定DMA通道的DMA缓存的大小,单位为数据单位。根据传输方向,数据单位等于结构中参数DMA_PeripheralDataSize或者参数DMA_MemoryDataSize的值。
DMA_PeripheralInc
DMA_PeripheralInc用来设定外设地址寄存器递增与否 DMA_PeripheralInc_Enable:外设地址寄存器递增 DMA_PeripheralInc_Disable:外设地址寄存器不变
DMA_MemoryInc
DMA_MemoryInc用来设定内存地址寄存器递增与否。 DMA_PeripheralInc_Enable:内存地址寄存器递增 DMA_PeripheralInc_Disable:内存地址寄存器不变
DMA_PeripheralDataSize
DMA_PeripheralDataSize设定了外设数据宽度。 DMA_PeripheralDataSize_Byte:数据宽度为8位
DMA_PeripheralDataSize_HalfWord:数据宽度为16位 DMA_PeripheralDataSize_Word:数据宽度为32位
DMA_MemoryDataSize
DMA_MemoryDataSize设定了外设数据宽度。 DMA_MemoryDataSize_Byte:数据宽度为8位
DMA_MemoryDataSize_HalfWord:数据宽度为16位 DMA_MemoryDataSize_Word:数据宽度为32位
DMA_Mode
DMA_Mode设置了CAN的工作模式,
DMA_Mode_Circular:工作在循环缓存模式 DMA_Mode_Normal:工作在正常缓存模式
DMA_Priority
DMA_Priority设定DMA通道x的软件优先级。
DMA_Priority_VeryHigh:DMA通道x拥有非常高优先级 DMA_Priority_High:DMA通道x拥有高优先级 DMA_Priority_Medium:DMA通道x拥有中优先级 DMA_Priority_Low:DMA通道x拥有低优先级
DMA_M2M
DMA_M2M使能DMA通道的内存到内存传输。
DMA_M2M_Enable:DMA通道x设置为内存到内存传输
DMA_M2M_Disable:DMA通道x没有设置为内存到内存传输
37
例:
DMA_InitTypeDef DMA_InitStructure;
DMA_InitStructure.DMA_PeripheralBaseAddr = 0x40005400; DMA_InitStructure.DMA_MemoryBaseAddr = 0x20000100; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
DMA_InitStructure.DMA_BufferSize = 256; DMA_InitStructure. DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
DMA_InitStructure.DMA_Priority = DMA_Priority_Medium; DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; DMA_Init(DMA_Channel1, &DMA_InitStructure);
3 函数DMA_StructInit
功能描述:把DMA_InitStruct中的每一个参数按缺省值填入 DMA_InitStruct:指向结构DMA_InitTypeDef的指针,待初始化
结构DMA_InitStruct的各个成员有如下的缺省值: DMA_PeripheralBaseAddr:0 DMA_MemoryBaseAddr:0
DMA_DIR:DMA_DIR_PeripheralSRC DMA_BufferSize:0
DMA_PeripheralInc:DMA_PeripheralInc_Disable DMA_MemoryInc:DMA_MemoryInc_Disable
DMA_PeripheralDataSize:DMA_PeripheralDataSize_Byte DMA_MemoryDataSize:DMA_MemoryDataSize_Byte DMA_Mode:DMA_Mode_Normal DMA_Priority:DMA_Priority_Low DMA_M2M:DMA_M2M_Disable
例:
DMA_InitTypeDef DMA_InitStructure; DMA_StructInit(&DMA_InitStructure);
4 函数DMA_Cmd
功能描述:使能或者失能指定的通道x 例:
DMA_Cmd(DMA_Channel7, ENABLE);
5 函数DMA_ITConfig
功能描述:使能或者失能指定的通道x中断 例:
DMA_ITConfig(DMA_Channel5, DMA_IT_TC, ENABLE);
DMA_IT
输入参数DMA_IT使能或者失能DMA通道x的中断。 DMA_IT_TC:传输完成中断屏蔽 DMA_IT_HT:传输过半中断屏蔽 DMA_IT_TE:传输错误中断屏蔽
38
6 函数DMA_GetCurrDataCounte
功能描述:返回当前DMA通道x剩余的待传输数据数目 例:
u16 CurrDataCount;
CurrDataCount = DMA_GetCurrDataCounter(DMA_Channel2);
7 函数DMA_GetFlagStatus
功能描述:检查指定的DMA通道x标志位设置与否 例:
FlagStatus Status;
Status = DMA_GetFlagStatus(DMA_FLAG_HT6);
DMA_FLAG 参数DMA_FLAG定义了待检察的标志位类型
DMA_FLAG_GLx:通道x全局标志位
DMA_FLAG_TCx:通道x传输完成标志位 DMA_FLAG_HTx:通道x传输过半标志位
DMA_FLAG_TEx:通道x传输错误标志位(1--7)
8 函数DMA_ClearFlag
功能描述:清除DMA通道x待处理标志位 例:
DMA_ClearFlag(DMA_FLAG_TE3);
9 函数DMA_GetITStatus
功能描述:检查指定的DMA通道x中断发生与否 例:
ITStatus Status;
Status = DMA_GetITStatus(DMA_IT_TC7);
DMA_IT
参数DMA_IT定义了待检察的DMA中断。 DMA_IT_GLx:通道x全局中断 DMA_IT_TCx:通道x传输完成中断 DMA_IT_HTx:通道x传输过半中断
DMA_IT_TEx:通道x传输错误中断(1--7)
10 函数DMA …… 此处隐藏:3209字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




