DMA库函数

1.void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx)

功能:将DMAyChannelx寄存器的初始化为其默认值

注释:RCC_ResetCmd中对DMA无定义,因此采用的直接操纵DMA寄存器的方式

例如:DMA_DeInit(DMA1_Channel1);

 

2.void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct)

功能:根据DMA_InitStruct中的指定参数初始化DMAy通道x

注释:结构体成员DMA_BufferSize的值大小等于数据需要传输的次数

例如:DMA_Init(DMA1_Channel1 , &DMA_InitStructure);

 

3.void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct)

功能:用其默认值填充结构体DMA_InitStruct的每个成员

注释:只填充不写入,没有Init一步,没有写入寄存器的操作

例如:DMA_StructInit(&DMA_InitStructure);

 

4.void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState)

功能:使能或者失能DMA外设

例如:DMA_Cmd(DMA1_Channel1 , ENABLE);

 

5.void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState)

功能:配置指定的DMAy通道x的中断

注释:DMA_IT_TC:传输完成        DMA_IT_HT:传输一半        DMA_IT_TE:传输错误

例如:DMA_ITConfig(DMA1_Channel1 , DMA_IT_TC , ENABLE);

 

6.void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber)

功能:设置当前DMAy Channelx传输中的数据单元数

注释:数据传输数量为0至65535,寄存器内容在每次DMA传输后递减

           DMA通道x传输数量寄存器(DMA_CNDTRx)只能在通道关闭即失能不工作时写入

           通道开启后该寄存器变为只读,指示剩余的待传输字节数目

例如:DMA_SetCurrDataCounter(DMA1_Channel1 , 65535);

 

7.uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx)

功能:获取当前DMAy通道x传输中剩余数据单元的数量

注释: DMA通道x传输数量寄存器(DMA_CNDTRx)开启后该寄存器变为只读,指示剩余的待传输字节数目

            寄存器内容在每次DMA传输后递减

例如:counter = DMA_GetCurrDataCounter(DMA1_Channel1);

 

8.FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG)

功能:检查指定的DMAy Channelx标志是否设置,检查数据传输状态

注释:参数DMA_FLAG_GLx意为:在通道x是否产生了TE、HT或TC事件

           该函数与DMA_GetITStatus完全一致

例如:

if(DMA_GetFlagStatus(DMA1_FLAG_TC1) == SET)
{
}
else
{
}

 

9.void DMA_ClearFlag(uint32_t DMAy_FLAG)

功能:清除DMAy通道的挂起标志

注释:该函数与DMA_ClearITPendingBit完全一致

例如:DMA_ClearFlag(DMA1_FLAG_GL1);

 

10.ITStatus DMA_GetITStatus(uint32_t DMAy_IT)

功能:检查指定的DMAy Channelx中断是否已经发生

注释:该函数与DMA_GetFlagStatus完全一致

例如:

if(DMA_GetITStatus(DMA1_FLAG_TC1) == SET)
{
}
else
{
}

 

11.void DMA_ClearITPendingBit(uint32_t DMAy_IT)

功能:清除DMAy通道的中断挂起位

注释:该函数与DMA_ClearFlag完全一致

例如:DMA_ClearITPendingBit(DMA1_IT_GL1);

  • 17
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值