📄 stm32f10x_dma.c
字号:
* DMA1_FLAG_GL4: DMA1 通道4 全局标志.
* DMA1_FLAG_TC4: DMA1 通道4 传输结束标志.
* DMA1_FLAG_HT4: DMA1 通道4 半传输标志.
* DMA1_FLAG_TE4: DMA1 通道4 传输错误标志.
* DMA1_FLAG_GL5: DMA1 通道5 全局标志.
* DMA1_FLAG_TC5: DMA1 通道5 传输结束标志.
* DMA1_FLAG_HT5: DMA1 通道5 半传输标志.
* DMA1_FLAG_TE5: DMA1 通道5 传输错误标志.
* DMA1_FLAG_GL6: DMA1 通道6 全局标志.
* DMA1_FLAG_TC6: DMA1 通道6 传输结束标志.
* DMA1_FLAG_HT6: DMA1 通道6 半传输标志.
* DMA1_FLAG_TE6: DMA1 通道6 传输错误标志.
* DMA1_FLAG_GL7: DMA1 通道7 全局标志.
* DMA1_FLAG_TC7: DMA1 通道7 传输结束标志.
* DMA1_FLAG_HT7: DMA1 通道7 半传输标志.
* DMA1_FLAG_TE7: DMA1 通道7 传输错误标志.
* DMA2_FLAG_GL1: DMA2 通道1 全局标志.
* DMA2_FLAG_TC1: DMA2 通道1 传输结束标志.
* DMA2_FLAG_HT1: DMA2 通道1 半传输标志.
* DMA2_FLAG_TE1: DMA2 通道1 传输错误标志.
* DMA2_FLAG_GL2: DMA2 通道2 全局标志.
* DMA2_FLAG_TC2: DMA2 通道2 传输结束标志.
* DMA2_FLAG_HT2: DMA2 通道2 半传输标志.
* DMA2_FLAG_TE2: DMA2 通道2 传输错误标志.
* DMA2_FLAG_GL3: DMA2 通道3 全局标志.
* DMA2_FLAG_TC3: DMA2 通道3 传输结束标志.
* DMA2_FLAG_HT3: DMA2 通道3 半传输标志.
* DMA2_FLAG_TE3: DMA2 通道3 传输错误标志.
* DMA2_FLAG_GL4: DMA2 通道4 全局标志.
* DMA2_FLAG_TC4: DMA2 通道4 传输结束标志.
* DMA2_FLAG_HT4: DMA2 通道4 半传输标志.
* DMA2_FLAG_TE4: DMA2 通道4 传输错误标志.
* DMA2_FLAG_GL5: DMA2 通道5 全局标志.
* DMA2_FLAG_TC5: DMA2 通道5 传输结束标志.
* DMA2_FLAG_HT5: DMA2 通道5 半传输标志.
* DMA2_FLAG_TE5: DMA2 通道5 传输错误标志.
* @返回 DMA_FLAG 的新状态 (SET 或 RESET).
*/
FlagStatus DMA_GetFlagStatus(uint32_t DMA_FLAG)
{
FlagStatus bitstatus = RESET;
uint32_t tmpreg = 0;
/* 检查参数 */
assert_param(IS_DMA_GET_FLAG(DMA_FLAG));
/* 计算使用的 DMA */
if ((DMA_FLAG & FLAG_Mask) != (uint32_t)RESET)
{
/* 得到 DMA2 ISR 寄存器的值 */
tmpreg = DMA2->ISR ;
}
else
{
/* 得到 DMA1 ISR 寄存器的值 */
tmpreg = DMA1->ISR ;
}
/* 检查指定的 DMA 标志的新状态 */
if ((tmpreg & DMA_FLAG) != (uint32_t)RESET)
{
/* 设置 DMA_FLAG */
bitstatus = SET;
}
else
{
/* 复位 DMA_FLAG */
bitstatus = RESET;
}
/* 返回 DMA_FLAG 状态 */
return bitstatus;
}
/**
* @简述 清除定的 DMA y 通道 x 待处理标志位.
* @参数 DMA_FLAG: 指定的待处理标志位.
* 这个参数可以是下面值的任意组合 (对于同一个 DMA) :
* DMA1_FLAG_GL1: DMA1通道1全局标志
* DMA1_FLAG_TC1: DMA1通道1传输结束标志
* DMA1_FLAG_HT1: DMA1通道1半传输标志
* DMA1_FLAG_TE1: DMA1通道1传输错误标志
* DMA1_FLAG_GL2: DMA1 通道2 全局标志.
* DMA1_FLAG_TC2: DMA1 通道2 传输结束标志.
* DMA1_FLAG_HT2: DMA1 通道2 半传输标志.
* DMA1_FLAG_TE2: DMA1 通道2 传输错误标志.
* DMA1_FLAG_GL3: DMA1 通道3 全局标志.
* DMA1_FLAG_TC3: DMA1 通道3 传输结束标志.
* DMA1_FLAG_HT3: DMA1 通道3 半传输标志.
* DMA1_FLAG_TE3: DMA1 通道3 传输错误标志.
* DMA1_FLAG_GL4: DMA1 通道4 全局标志.
* DMA1_FLAG_TC4: DMA1 通道4 传输结束标志.
* DMA1_FLAG_HT4: DMA1 通道4 半传输标志.
* DMA1_FLAG_TE4: DMA1 通道4 传输错误标志.
* DMA1_FLAG_GL5: DMA1 通道5 全局标志.
* DMA1_FLAG_TC5: DMA1 通道5 传输结束标志.
* DMA1_FLAG_HT5: DMA1 通道5 半传输标志.
* DMA1_FLAG_TE5: DMA1 通道5 传输错误标志.
* DMA1_FLAG_GL6: DMA1 通道6 全局标志.
* DMA1_FLAG_TC6: DMA1 通道6 传输结束标志.
* DMA1_FLAG_HT6: DMA1 通道6 半传输标志.
* DMA1_FLAG_TE6: DMA1 通道6 传输错误标志.
* DMA1_FLAG_GL7: DMA1 通道7 全局标志.
* DMA1_FLAG_TC7: DMA1 通道7 传输结束标志.
* DMA1_FLAG_HT7: DMA1 通道7 半传输标志.
* DMA1_FLAG_TE7: DMA1 通道7 传输错误标志.
* DMA2_FLAG_GL1: DMA2 通道1 全局标志.
* DMA2_FLAG_TC1: DMA2 通道1 传输结束标志.
* DMA2_FLAG_HT1: DMA2 通道1 半传输标志.
* DMA2_FLAG_TE1: DMA2 通道1 传输错误标志.
* DMA2_FLAG_GL2: DMA2 通道2 全局标志.
* DMA2_FLAG_TC2: DMA2 通道2 传输结束标志.
* DMA2_FLAG_HT2: DMA2 通道2 半传输标志.
* DMA2_FLAG_TE2: DMA2 通道2 传输错误标志.
* DMA2_FLAG_GL3: DMA2 通道3 全局标志.
* DMA2_FLAG_TC3: DMA2 通道3 传输结束标志.
* DMA2_FLAG_HT3: DMA2 通道3 半传输标志.
* DMA2_FLAG_TE3: DMA2 通道3 传输错误标志.
* DMA2_FLAG_GL4: DMA2 通道4 全局标志.
* DMA2_FLAG_TC4: DMA2 通道4 传输结束标志.
* DMA2_FLAG_HT4: DMA2 通道4 半传输标志.
* DMA2_FLAG_TE4: DMA2 通道4 传输错误标志.
* DMA2_FLAG_GL5: DMA2 通道5 全局标志.
* DMA2_FLAG_TC5: DMA2 通道5 传输结束标志.
* DMA2_FLAG_HT5: DMA2 通道5 半传输标志.
* DMA2_FLAG_TE5: DMA2 通道5 传输错误标志.
* @返回 没有
*/
void DMA_ClearFlag(uint32_t DMA_FLAG)
{
/* 检查参数 */
assert_param(IS_DMA_CLEAR_FLAG(DMA_FLAG));
/* 计算使用的 DMA */
if ((DMA_FLAG & FLAG_Mask) != (uint32_t)RESET)
{
/* 清除选定的 DMA 标志 */
DMA2->IFCR = DMA_FLAG;
}
else
{
/* 清除选定的 DMA 标志 */
DMA1->IFCR = DMA_FLAG;
}
}
/**
* @简述 检查指定的 DMA y 通道 x 中断发生与否.
* @参数 DMA_IT: 指定的 DMA 中断源.
* 这个参数可以是下面的值之一:
* DMA1_IT_GL1: DMA1 通道1 全局中断.
* DMA1_IT_TC1: DMA1 通道1 传输完成中断.
* DMA1_IT_HT1: DMA1 通道1 半传输中断.
* DMA1_IT_TE1: DMA1 通道1 传输错误中断.
* DMA1_IT_GL2: DMA1 通道2 全局中断.
* DMA1_IT_TC2: DMA1 通道2 传输完成中断.
* DMA1_IT_HT2: DMA1 通道2 半传输中断.
* DMA1_IT_TE2: DMA1 通道2 传输错误中断.
* DMA1_IT_GL3: DMA1 通道3 全局中断.
* DMA1_IT_TC3: DMA1 通道3 传输完成中断.
* DMA1_IT_HT3: DMA1 通道3 半传输中断.
* DMA1_IT_TE3: DMA1 通道3 传输错误中断.
* DMA1_IT_GL4: DMA1 通道4 全局中断.
* DMA1_IT_TC4: DMA1 通道4 传输完成中断.
* DMA1_IT_HT4: DMA1 通道4 半传输中断.
* DMA1_IT_TE4: DMA1 通道4 传输错误中断.
* DMA1_IT_GL5: DMA1 通道5 全局中断.
* DMA1_IT_TC5: DMA1 通道5 传输完成中断.
* DMA1_IT_HT5: DMA1 通道5 半传输中断.
* DMA1_IT_TE5: DMA1 通道5 传输错误中断.
* DMA1_IT_GL6: DMA1 通道6 全局中断.
* DMA1_IT_TC6: DMA1 通道6 传输完成中断.
* DMA1_IT_HT6: DMA1 通道6 半传输中断.
* DMA1_IT_TE6: DMA1 通道6 传输错误中断.
* DMA1_IT_GL7: DMA1 通道7 全局中断.
* DMA1_IT_TC7: DMA1 通道7 传输完成中断.
* DMA1_IT_HT7: DMA1 通道7 半传输中断.
* DMA1_IT_TE7: DMA1 通道7 传输错误中断.
* DMA2_IT_GL1: DMA2 通道1 全局中断.
* DMA2_IT_TC1: DMA2 通道1 传输完成中断.
* DMA2_IT_HT1: DMA2 通道1 半传输中断.
* DMA2_IT_TE1: DMA2 通道1 传输错误中断.
* DMA2_IT_GL2: DMA2 通道2 全局中断.
* DMA2_IT_TC2: DMA2 通道2 传输完成中断.
* DMA2_IT_HT2: DMA2 通道2 半传输中断.
* DMA2_IT_TE2: DMA2 通道2 传输错误中断.
* DMA2_IT_GL3: DMA2 通道3 全局中断.
* DMA2_IT_TC3: DMA2 通道3 传输完成中断.
* DMA2_IT_HT3: DMA2 通道3 半传输中断.
* DMA2_IT_TE3: DMA2 通道3 传输错误中断.
* DMA2_IT_GL4: DMA2 通道4 全局中断.
* DMA2_IT_TC4: DMA2 通道4 传输完成中断.
* DMA2_IT_HT4: DMA2 通道4 半传输中断.
* DMA2_IT_TE4: DMA2 通道4 传输错误中断.
* DMA2_IT_GL5: DMA2 通道5 全局中断.
* DMA2_IT_TC5: DMA2 通道5 传输完成中断.
* DMA2_IT_HT5: DMA2 通道5 半传输中断.
* DMA2_IT_TE5: DMA2 通道5 传输错误中断.
* @返回 DMA_IT 的新状态 (SET 或 RESET).
*/
ITStatus DMA_GetITStatus(uint32_t DMA_IT)
{
ITStatus bitstatus = RESET;
uint32_t tmpreg = 0;
/* 检查参数 */
assert_param(IS_DMA_GET_IT(DMA_IT));
/* 计算使用的 DMA */
if ((DMA_IT & FLAG_Mask) != (uint32_t)RESET)
{
/* 得到 DMA2 ISR 寄存器的值 */
tmpreg = DMA2->ISR ;
}
else
{
/* 得到 DMA1 ISR 寄存器的值 */
tmpreg = DMA1->ISR ;
}
/* 检查指定的 DMA 中断 */
if ((tmpreg & DMA_IT) != (uint32_t)RESET)
{
/* 设置 DMA_IT */
bitstatus = SET;
}
else
{
/* 复位 DMA_IT */
bitstatus = RESET;
}
/* 返回 DMA_IT 状态 */
return bitstatus;
}
/**
* @简述 清除 DMA y 通道 x 中断待处理标志位.
* @参数 DMA_IT: 指定的 DMA 中断挂起位.
* 这个参数可以是下面的值之一:
* DMA1_IT_GL1: DMA1 通道1 全局中断.
* DMA1_IT_TC1: DMA1 通道1 传输完成中断.
* DMA1_IT_HT1: DMA1 通道1 半传输中断.
* DMA1_IT_TE1: DMA1 通道1 传输错误中断.
* DMA1_IT_GL2: DMA1 通道2 全局中断.
* DMA1_IT_TC2: DMA1 通道2 传输完成中断.
* DMA1_IT_HT2: DMA1 通道2 半传输中断.
* DMA1_IT_TE2: DMA1 通道2 传输错误中断.
* DMA1_IT_GL3: DMA1 通道3 全局中断.
* DMA1_IT_TC3: DMA1 通道3 传输完成中断.
* DMA1_IT_HT3: DMA1 通道3 半传输中断.
* DMA1_IT_TE3: DMA1 通道3 传输错误中断.
* DMA1_IT_GL4: DMA1 通道4 全局中断.
* DMA1_IT_TC4: DMA1 通道4 传输完成中断.
* DMA1_IT_HT4: DMA1 通道4 半传输中断.
* DMA1_IT_TE4: DMA1 通道4 传输错误中断.
* DMA1_IT_GL5: DMA1 通道5 全局中断.
* DMA1_IT_TC5: DMA1 通道5 传输完成中断.
* DMA1_IT_HT5: DMA1 通道5 半传输中断.
* DMA1_IT_TE5: DMA1 通道5 传输错误中断.
* DMA1_IT_GL6: DMA1 通道6 全局中断.
* DMA1_IT_TC6: DMA1 通道6 传输完成中断.
* DMA1_IT_HT6: DMA1 通道6 半传输中断.
* DMA1_IT_TE6: DMA1 通道6 传输错误中断.
* DMA1_IT_GL7: DMA1 通道7 全局中断.
* DMA1_IT_TC7: DMA1 通道7 传输完成中断.
* DMA1_IT_HT7: DMA1 通道7 半传输中断.
* DMA1_IT_TE7: DMA1 通道7 传输错误中断.
* DMA2_IT_GL1: DMA2 通道1 全局中断.
* DMA2_IT_TC1: DMA2 通道1 传输完成中断.
* DMA2_IT_HT1: DMA2 通道1 半传输中断.
* DMA2_IT_TE1: DMA2 通道1 传输错误中断.
* DMA2_IT_GL2: DMA2 通道2 全局中断.
* DMA2_IT_TC2: DMA2 通道2 传输完成中断.
* DMA2_IT_HT2: DMA2 通道2 半传输中断.
* DMA2_IT_TE2: DMA2 通道2 传输错误中断.
* DMA2_IT_GL3: DMA2 通道3 全局中断.
* DMA2_IT_TC3: DMA2 通道3 传输完成中断.
* DMA2_IT_HT3: DMA2 通道3 半传输中断.
* DMA2_IT_TE3: DMA2 通道3 传输错误中断.
* DMA2_IT_GL4: DMA2 通道4 全局中断.
* DMA2_IT_TC4: DMA2 通道4 传输完成中断.
* DMA2_IT_HT4: DMA2 通道4 半传输中断.
* DMA2_IT_TE4: DMA2 通道4 传输错误中断.
* DMA2_IT_GL5: DMA2 通道5 全局中断.
* DMA2_IT_TC5: DMA2 通道5 传输完成中断.
* DMA2_IT_HT5: DMA2 通道5 半传输中断.
* DMA2_IT_TE5: DMA2 通道5 传输错误中断.
* @返回 没有
*/
void DMA_ClearITPendingBit(uint32_t DMA_IT)
{
/* 检查参数 */
assert_param(IS_DMA_CLEAR_IT(DMA_IT));
/* 计算使用的 DMA */
if ((DMA_IT & FLAG_Mask) != (uint32_t)RESET)
{
/* 清除选择的DMA中断挂起位 */
DMA2->IFCR = DMA_IT;
}
else
{
/* 清除选择的DMA中断挂起位 */
DMA1->IFCR = DMA_IT;
}
}
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -