⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm32f10x_dma.c

📁 中文固件库.rar
💻 C
📖 第 1 页 / 共 2 页
字号:
*            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 + -