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

📄 stm32f10x_dma.c

📁 stm32f10xx的中文译文例程
💻 C
📖 第 1 页 / 共 3 页
字号:
  /* Initialize the DMA_DIR member [初始化DMA_DIR成员]*/
  DMA_InitStruct->DMA_DIR = DMA_DIR_PeripheralSRC;

  /* Initialize the DMA_BufferSize member[初始化DMA_BufferSize成员] */
  DMA_InitStruct->DMA_BufferSize = 0;

  /* Initialize the DMA_PeripheralInc member [初始化DMA_PeripheralInc成员]*/
  DMA_InitStruct->DMA_PeripheralInc = DMA_PeripheralInc_Disable;

  /* Initialize the DMA_MemoryInc member [初始化DMA_MemoryInc成员]*/
  DMA_InitStruct->DMA_MemoryInc = DMA_MemoryInc_Disable;

  /* Initialize the DMA_PeripheralDataSize member [初始化DMA_PeripheralDataSize成员]*/
  DMA_InitStruct->DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;

  /* Initialize the DMA_MemoryDataSize member [初始化DMA_MemoryDataSize成员]*/
  DMA_InitStruct->DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;

  /* Initialize the DMA_Mode member [初始化DMA_DMA_Mode成员]*/
  DMA_InitStruct->DMA_Mode = DMA_Mode_Normal;

  /* Initialize the DMA_Priority member [初始化DMA_Priority成员]*/
  DMA_InitStruct->DMA_Priority = DMA_Priority_Low;

  /* Initialize the DMA_M2M member [初始化DMA_M2M成员]*/
  DMA_InitStruct->DMA_M2M = DMA_M2M_Disable;
}

/*******************************************************************************
* 函数名称: DMA_Cmd
* 功能描述: 使能(或禁能)特定的DMAy通道x .
* 输入参数: (1)DMAy_Channelx:y可以是1或者2,DMA1的x可以是1到7 和DMA2的x可以是1到5来选择各通道.
*           (2)NewState:DMA通道的新状态。该参数可为:ENABLE或DISABLE.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState)
{
  /* Check the parameters [检查参数]*/
  assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)
  {
    /* Enable the selected DMAy Channelx [使能选择的DMAy通道x]*/
    DMAy_Channelx->CCR |= CCR_ENABLE_Set;
  }
  else
  {
    /* Disable the selected DMAy Channelx [禁止选择的DMAy通道x]*/
    DMAy_Channelx->CCR &= CCR_ENABLE_Reset;
  }
}

/*******************************************************************************
* 函数名称: DMA_ITConfig
* 功能描述: 使能(或禁能)特定的DMAy通道x的中断.
* 输入参数: (1)DMAy_Channelx:y可以是1或者2,DMA1的x可以是1到7 和DMA2的x可以是1到5来选择各通道.
*           (2)DMA_IT: 确定DMA通道的中断源是否被使能。 
*                    这个参数可以是下面值的任意组合:
*                       - DMA_IT_TC:  传输结束中断屏蔽 mask
*                       - DMA_IT_HT:  半传输中断屏蔽 mask
*                       - DMA_IT_TE:  传输错误中断屏蔽 mask
*           (3)NewState:指定的DMA通道中断的新状态。该参数可为:ENABLE或DISABLE
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, u32 DMA_IT, FunctionalState NewState)
{
  /* Check the parameters [检查参数]*/
  assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx));
  assert_param(IS_DMA_CONFIG_IT(DMA_IT));
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)
  {
    /* Enable the selected DMA interrupts [使能选择的DMA中断]*/
    DMAy_Channelx->CCR |= DMA_IT;
  }
  else
  {
    /* Disable the selected DMA interrupts [禁止选择的DMA中断]*/
    DMAy_Channelx->CCR &= ~DMA_IT;
  }
}

/*******************************************************************************
* 函数名称: DMA_GetCurrDataCounter
* 功能描述: 返回当前DMAy通道x传输剩余的数据单元.
* 输入参数: DMAy_Channelx:y可以是1或者2,DMA1的x可以是1到7 和DMA2的x可以是1到5来选择各通道.
* 输出参数: 无
* 返回参数: 当前DMA通道传输中剩余的数据单元的数量.
*******************************************************************************/
u16 DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx)
{
  /* Check the parameters [检查参数]*/
  assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx));

  /* Return the number of remaining data units for DMAy Channelx [返回DMAy Channelx剩余数据单元的数字]*/
  return ((u16)(DMAy_Channelx->CNDTR));
}

/*******************************************************************************
* 函数名称: DMA_GetFlagStatus
* 功能描述: 检查特定的DMAy通道x的标志是否被置位了
* 输入参数: DMA_FLAG:指定需要检查的标志。
*                    这个参数可以是下面的值之一:
*                       - 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 传输错误标志.
* 输出参数: 无
* 返回参数: DMA_FLAG的新状态(SET或RESET).
*******************************************************************************/
FlagStatus DMA_GetFlagStatus(u32 DMA_FLAG)
{
  FlagStatus bitstatus = RESET;
  u32 tmpreg = 0;

  /* Check the parameters [检查参数]*/
  assert_param(IS_DMA_GET_FLAG(DMA_FLAG));

  /* Calculate the used DMA [计算使用的DMA]*/
  if ((DMA_FLAG & FLAG_Mask) != (u32)RESET)
  {
    /* Get DMA2 ISR register value [取得DMA2 ISR寄存器值]*/
    tmpreg = DMA2->ISR ;
  }
  else
  {
    /* Get DMA1 ISR register value [取得DMA1 ISR寄存器值]*/
    tmpreg = DMA1->ISR ;
  }

  /* Check the status of the specified DMA flag [检查指定的DMA标志状态]*/
  if ((tmpreg & DMA_FLAG) != (u32)RESET)
  {
    /* DMA_FLAG is set [置位DMA_FLAG]*/
    bitstatus = SET;
  }
  else
  {
    /* DMA_FLAG is reset [复位DMA_FLAG]*/
    bitstatus = RESET;
  }
  
  /* Return the DMA_FLAG status [返回DMA_FLAG状态]*/
  return  bitstatus;
}

/*******************************************************************************
* 函数名称: DMA_ClearFlag
* 功能描述: 清除 DMAy 通道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 半传输标志.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -