コード例 #1
0
/**
 * @brief  Checks whether the specified DMAy Channelx flag is set or not.
 * @param  DMAy_FLAG: specifies the flag to check.
 *   This parameter can be one of the following values:
 *     @arg DMA1_FLAG_GL1: DMA1 Channel1 global flag.
 *     @arg DMA1_FLAG_TC1: DMA1 Channel1 transfer complete flag.
 *     @arg DMA1_FLAG_HT1: DMA1 Channel1 half transfer flag.
 *     @arg DMA1_FLAG_TE1: DMA1 Channel1 transfer error flag.
 *     @arg DMA1_FLAG_GL2: DMA1 Channel2 global flag.
 *     @arg DMA1_FLAG_TC2: DMA1 Channel2 transfer complete flag.
 *     @arg DMA1_FLAG_HT2: DMA1 Channel2 half transfer flag.
 *     @arg DMA1_FLAG_TE2: DMA1 Channel2 transfer error flag.
 *     @arg DMA1_FLAG_GL3: DMA1 Channel3 global flag.
 *     @arg DMA1_FLAG_TC3: DMA1 Channel3 transfer complete flag.
 *     @arg DMA1_FLAG_HT3: DMA1 Channel3 half transfer flag.
 *     @arg DMA1_FLAG_TE3: DMA1 Channel3 transfer error flag.
 *     @arg DMA1_FLAG_GL4: DMA1 Channel4 global flag.
 *     @arg DMA1_FLAG_TC4: DMA1 Channel4 transfer complete flag.
 *     @arg DMA1_FLAG_HT4: DMA1 Channel4 half transfer flag.
 *     @arg DMA1_FLAG_TE4: DMA1 Channel4 transfer error flag.
 *     @arg DMA1_FLAG_GL5: DMA1 Channel5 global flag.
 *     @arg DMA1_FLAG_TC5: DMA1 Channel5 transfer complete flag.
 *     @arg DMA1_FLAG_HT5: DMA1 Channel5 half transfer flag.
 *     @arg DMA1_FLAG_TE5: DMA1 Channel5 transfer error flag.
 *     @arg DMA1_FLAG_GL6: DMA1 Channel6 global flag.
 *     @arg DMA1_FLAG_TC6: DMA1 Channel6 transfer complete flag.
 *     @arg DMA1_FLAG_HT6: DMA1 Channel6 half transfer flag.
 *     @arg DMA1_FLAG_TE6: DMA1 Channel6 transfer error flag.
 *     @arg DMA1_FLAG_GL7: DMA1 Channel7 global flag.
 *     @arg DMA1_FLAG_TC7: DMA1 Channel7 transfer complete flag.
 *     @arg DMA1_FLAG_HT7: DMA1 Channel7 half transfer flag.
 *     @arg DMA1_FLAG_TE7: DMA1 Channel7 transfer error flag.
 *     @arg DMA2_FLAG_GL1: DMA2 Channel1 global flag.
 *     @arg DMA2_FLAG_TC1: DMA2 Channel1 transfer complete flag.
 *     @arg DMA2_FLAG_HT1: DMA2 Channel1 half transfer flag.
 *     @arg DMA2_FLAG_TE1: DMA2 Channel1 transfer error flag.
 *     @arg DMA2_FLAG_GL2: DMA2 Channel2 global flag.
 *     @arg DMA2_FLAG_TC2: DMA2 Channel2 transfer complete flag.
 *     @arg DMA2_FLAG_HT2: DMA2 Channel2 half transfer flag.
 *     @arg DMA2_FLAG_TE2: DMA2 Channel2 transfer error flag.
 *     @arg DMA2_FLAG_GL3: DMA2 Channel3 global flag.
 *     @arg DMA2_FLAG_TC3: DMA2 Channel3 transfer complete flag.
 *     @arg DMA2_FLAG_HT3: DMA2 Channel3 half transfer flag.
 *     @arg DMA2_FLAG_TE3: DMA2 Channel3 transfer error flag.
 *     @arg DMA2_FLAG_GL4: DMA2 Channel4 global flag.
 *     @arg DMA2_FLAG_TC4: DMA2 Channel4 transfer complete flag.
 *     @arg DMA2_FLAG_HT4: DMA2 Channel4 half transfer flag.
 *     @arg DMA2_FLAG_TE4: DMA2 Channel4 transfer error flag.
 *     @arg DMA2_FLAG_GL5: DMA2 Channel5 global flag.
 *     @arg DMA2_FLAG_TC5: DMA2 Channel5 transfer complete flag.
 *     @arg DMA2_FLAG_HT5: DMA2 Channel5 half transfer flag.
 *     @arg DMA2_FLAG_TE5: DMA2 Channel5 transfer error flag.
 * @retval The new state of DMAy_FLAG (SET or RESET).
 */
FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG)
{
	FlagStatus bitstatus = RESET;
	uint32_t tmpreg = 0;

	/* Check the parameters */
	assert_param(IS_DMA_GET_FLAG(DMAy_FLAG));

	/* Calculate the used DMAy */
	if ((DMAy_FLAG & FLAG_Mask) != (uint32_t)RESET)
	{
		/* Get DMA2 ISR register value */
		tmpreg = DMA2->ISR ;
	}
	else
	{
		/* Get DMA1 ISR register value */
		tmpreg = DMA1->ISR ;
	}

	/* Check the status of the specified DMAy flag */
	if ((tmpreg & DMAy_FLAG) != (uint32_t)RESET)
	{
		/* DMAy_FLAG is set */
		bitstatus = SET;
	}
	else
	{
		/* DMAy_FLAG is reset */
		bitstatus = RESET;
	}

	/* Return the DMAy_FLAG status */
	return  bitstatus;
}
コード例 #2
0
ファイル: stm32f10x_dma.c プロジェクト: ericscbb/test
/**
  * @簡述  檢查指定的 DMA y 通道 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(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;
}
コード例 #3
0
ファイル: stm32f4xx_dma.c プロジェクト: KnightSch/qpc
/**
  * @brief  Checks whether the specified DMAy Streamx flag is set or not.
  * @param  DMAy_Streamx: where y can be 1 or 2 to select the DMA and x can be 0
  *          to 7 to select the DMA Stream.
  * @param  DMA_FLAG: specifies the flag to check.
  *          This parameter can be one of the following values:
  *            @arg DMA_FLAG_TCIFx:  Streamx transfer complete flag
  *            @arg DMA_FLAG_HTIFx:  Streamx half transfer complete flag
  *            @arg DMA_FLAG_TEIFx:  Streamx transfer error flag
  *            @arg DMA_FLAG_DMEIFx: Streamx direct mode error flag
  *            @arg DMA_FLAG_FEIFx:  Streamx FIFO error flag
  *         Where x can be 0 to 7 to select the DMA Stream.
  * @retval The new state of DMA_FLAG (SET or RESET).
  */
FlagStatus DMA_GetFlagStatus(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_FLAG)
{
  FlagStatus bitstatus = RESET;
  DMA_TypeDef* DMAy;
  uint32_t tmpreg = 0;

  /* Check the parameters */
  assert_param(IS_DMA_ALL_PERIPH(DMAy_Streamx));
  assert_param(IS_DMA_GET_FLAG(DMA_FLAG));

  /* Determine the DMA to which belongs the stream */
  if (DMAy_Streamx < DMA2_Stream0)
  {
    /* DMAy_Streamx belongs to DMA1 */
    DMAy = DMA1;
  }
  else
  {
    /* DMAy_Streamx belongs to DMA2 */
    DMAy = DMA2;
  }

  /* Check if the flag is in HISR or LISR */
  if ((DMA_FLAG & HIGH_ISR_MASK) != (uint32_t)RESET)
  {
    /* Get DMAy HISR register value */
    tmpreg = DMAy->HISR;
  }
  else
  {
    /* Get DMAy LISR register value */
    tmpreg = DMAy->LISR;
  }

  /* Mask the reserved bits */
  tmpreg &= (uint32_t)RESERVED_MASK;

  /* Check the status of the specified DMA flag */
  if ((tmpreg & DMA_FLAG) != (uint32_t)RESET)
  {
    /* DMA_FLAG is set */
    bitstatus = SET;
  }
  else
  {
    /* DMA_FLAG is reset */
    bitstatus = RESET;
  }

  /* Return the DMA_FLAG status */
  return  bitstatus;
}
コード例 #4
0
ファイル: stm32f0xx_dma.c プロジェクト: peterliu2/FreeRTOS
/**
  * @brief  Checks whether the specified DMAy Channelx flag is set or not.
  * @param  DMA_FLAG: specifies the flag to check.
  *   This parameter can be one of the following values:
  *     @arg DMA1_FLAG_GL1: DMA1 Channel1 global flag.
  *     @arg DMA1_FLAG_TC1: DMA1 Channel1 transfer complete flag.
  *     @arg DMA1_FLAG_HT1: DMA1 Channel1 half transfer flag.
  *     @arg DMA1_FLAG_TE1: DMA1 Channel1 transfer error flag.
  *     @arg DMA1_FLAG_GL2: DMA1 Channel2 global flag.
  *     @arg DMA1_FLAG_TC2: DMA1 Channel2 transfer complete flag.
  *     @arg DMA1_FLAG_HT2: DMA1 Channel2 half transfer flag.
  *     @arg DMA1_FLAG_TE2: DMA1 Channel2 transfer error flag.
  *     @arg DMA1_FLAG_GL3: DMA1 Channel3 global flag.
  *     @arg DMA1_FLAG_TC3: DMA1 Channel3 transfer complete flag.
  *     @arg DMA1_FLAG_HT3: DMA1 Channel3 half transfer flag.
  *     @arg DMA1_FLAG_TE3: DMA1 Channel3 transfer error flag.
  *     @arg DMA1_FLAG_GL4: DMA1 Channel4 global flag.
  *     @arg DMA1_FLAG_TC4: DMA1 Channel4 transfer complete flag.
  *     @arg DMA1_FLAG_HT4: DMA1 Channel4 half transfer flag.
  *     @arg DMA1_FLAG_TE4: DMA1 Channel4 transfer error flag.
  *     @arg DMA1_FLAG_GL5: DMA1 Channel5 global flag.
  *     @arg DMA1_FLAG_TC5: DMA1 Channel5 transfer complete flag.
  *     @arg DMA1_FLAG_HT5: DMA1 Channel5 half transfer flag.
  *     @arg DMA1_FLAG_TE5: DMA1 Channel5 transfer error flag.
  *
  * @note
  *    The Global flag (DMAy_FLAG_GLx) is set whenever any of the other flags
  *    relative to the same channel is set (Transfer Complete, Half-transfer
  *    Complete or Transfer Error flags: DMAy_FLAG_TCx, DMAy_FLAG_HTx or
  *    DMAy_FLAG_TEx).
  *
  * @retval The new state of DMA_FLAG (SET or RESET).
  */
FlagStatus DMA_GetFlagStatus(uint32_t DMA_FLAG)
{
    FlagStatus bitstatus = RESET;

    /* Check the parameters */
    assert_param(IS_DMA_GET_FLAG(DMA_FLAG));

    /* Check the status of the specified DMA flag */
    if ((DMA1->ISR & DMA_FLAG) != (uint32_t)RESET) {
        /* DMA_FLAG is set */
        bitstatus = SET;
    } else {
        /* DMA_FLAG is reset */
        bitstatus = RESET;
    }

    /* Return the DMA_FLAG status */
    return  bitstatus;
}