单片机学习!
目录
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 函数用于清除中断挂起位。