*************************************************************************************************************/
void DMA_Disable(DMA_TypeDef *DMA)
{
DMA->Config = 0x00; //AHB小端模式,关闭DMA控制器
}
/*************************************************************************************************************************
*函数 : void DMA_StartChannels(DMA_TypeDef *DMA, DMA_CHX ch)
*功能 : DMA通道传输开始
*参数 : DMA:DMA模块选择,见DMA_TypeDef;ch:通道选择,见DMA_CHX;
*返回 : 无
*依赖 : 底层
*作者 : cp1300@139.com
*时间 : 20130131
*最后修改时间 : 20130131
*说明 : 无
*************************************************************************************************************************/
void DMA_StartChannels(DMA_TypeDef *DMA, DMA_CHX ch)
{
DMA_ClearIntTCStatus(DMA0, ch);
DMA_ClearIntErrorStatus(DMA0, ch);
(DMA->CH[ch]).Config |= 1 << 0; //通道使能
}
/*************************************************************************************************************************
*函数 : void DMA_WaitComplete(DMA_TypeDef *DMA, DMA_CHX ch)
*功能 : 等待传输完成
*参数 : DMA:DMA模块选择,见DMA_TypeDef;ch:通道选择,见DMA_CHX;
*返回 : 无
*依赖 : 底层
*作者 : cp1300@139.com
*时间 : 20130131
*最后修改时间 : 20130131
*说明 : 无
*************************************************************************************************************************/
void DMA_WaitComplete(DMA_TypeDef *DMA, DMA_CHX ch)
{
while(!(DMA->RawIntTCStatus & (1 << ch)));
}
/*************************************************************************************************************************
*函数 : void DMA_ClearIntTCStatus(DMA_TypeDef *DMA, DMA_CHX ch)
*功能 : DMA清除DMA传输完成中断状态
*参数 : DMA:DMA模块选择,见DMA_TypeDef;ch:通道选择,见DMA_CHX;
*返回 : 无
*依赖 : 底层
*作者 : cp1300@139.com
*时间 : 20130131
*最后修改时间 : 20130131
*说明 : 无
*************************************************************************************************************************/
void DMA_ClearIntTCStatus(DMA_TypeDef *DMA, DMA_CHX ch)
{
DMA->IntTcClear |= 1 << ch;
}
/*************************************************************************************************************************
*函数 : void DMA_ClearIntErrorStatus(DMA_TypeDef *DMA, DMA_CHX ch)
*功能 : 清除DMA传输错误中断状态
*参数 : DMA:DMA模块选择,见DMA_TypeDef;ch:通道选择,见DMA_CHX;
*返回 : 无
*依赖 : 底层
*作者 : cp1300@139.com
*时间 : 20130131
*最后修改时间 : 20130131
*说明 : 无
*************************************************************************************************************************/
void DMA_ClearIntErrorStatus(DMA_TypeDef *DMA, DMA_CHX ch)
{
DMA->IntErrClear |= 1 << ch;
}