STM32 DMA配置库函数

单片机学习!


目录

1. DMA_DeInit

2. DMA_Init

3. DMA_StructInit

4. DMA_Cmd

5. DMA_ITConfig

6. DMA_SetCurrDataCounter

7. DMA_GetCurrDataCounter

8. 获取/清除函数

8.1 DMA_GetFlagStatus

8.2 DMA_ClearFlag

8.3 DMA_GetITStatus

8.4 DMA_ClearITPendingBit


1. DMA_DeInit

        DMA_DeInit 函数用于恢复缺省配置。

2. DMA_Init

        DMA_Init 函数用于初始化。

DMA_PeripheralBaseAddr 参数用以定义 DMA 外设基地址。

DMA_MemoryBaseAddr 参数用以定义 DMA 内存基地址。

DMA_DIR 规定了外设是作为数据传输的目的地还是来源。

DMA_BufferSize 用以定义指定 DMA 通道的 DMA 缓存的大小,单位为数据单位。根据传输方向,数据单位等于结构中参数 DMA_PeripheralDataSize 或者参数 DMA_MemoryDataSize 的值。

DMA_PeripheralInc 用来设定外设地址寄存器递增与否。

DMA_MemoryInc 用来设定内存地址寄存器递增与否。

DMA_PeripheralDataSize 设定了外设数据宽度。

DMA_MemoryDataSize 设定了外设数据宽度。

​​​​​​​

DMA_Mode 设置了 DMA 的工作模式

DMA_Priority ​​​​​​​设定 DMA 通道 x 的软件优先级。

DMA_M2M ​​​​​​​使能 DMA 通道的内存到内存传输。

3. DMA_StructInit

        DMA_StructInit 函数用于结构体初始化。

        结构 DMA_InitStruct 的各个成员有如下的缺省值:

4. DMA_Cmd

        DMA_Cmd 函数用于DMA使能。

5. DMA_ITConfig

        DMA_ITConfig 函数用于中断输出使能。

DMA_IT  输入参数 DMA_IT 使能或者失能 DMA 通道 x 的中断。

6. DMA_SetCurrDataCounter

        DMA_SetCurrDataCounter 这个函数是DMA设置当前数据寄存器函数,是给传输计数器写数据的。

函数源码:

/**
  * @brief  Sets the number of data units in the current DMAy Channelx transfer.
  * @param  DMAy_Channelx: where y can be 1 or 2 to select the DMA and 
  *         x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel.
  * @param  DataNumber: The number of data units in the current DMAy Channelx
  *         transfer.   
  * @note   This function can only be used when the DMAy_Channelx is disabled.                 
  * @retval None.
  */
void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber)
{
  /* Check the parameters */
  assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx));
  
/*--------------------------- DMAy Channelx CNDTR Configuration ---------------*/
  /* Write to DMAy Channelx CNDTR */
  DMAy_Channelx->CNDTR = DataNumber;  
}

7. DMA_GetCurrDataCounter

        DMA_GetCurrDataCounter 函数是DMA获取当前数据寄存器函数,是返回传输计数器的值的。如果想看看还剩多少数据没有转运,就可以调用这个函数,来获取一下传输计数器就行了。

8. 获取/清除函数

8.1 DMA_GetFlagStatus

        DMA_GetFlagStatus 函数用于获取标志位状态。

DMA_FLAG 参数 DMA_FLAG 定义了待检察的标志位类型。

8.2 DMA_ClearFlag

        DMA_ClearFlag 函数用于清除标志位。

8.3 DMA_GetITStatus

        DMA_GetITStatus 函数用于获取中断状态。

DMA_IT 参数 DMA_IT 定义了待检察的 DMA 中断。

​​​​​​​

8.4 DMA_ClearITPendingBit

        DMA_ClearITPendingBit 函数用于清除中断挂起位。

  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值