亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stm32l1xx_dma.c

?? VS1003_MP3_SPI_SDHC_FAT32
?? C
?? 第 1 頁 / 共 3 頁
字號:
  *         be initialized.
  * @retval None
  */
void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct)
{
/*-------------- Reset DMA init structure parameters values ------------------*/
  /* Initialize the DMA_PeripheralBaseAddr member */
  DMA_InitStruct->DMA_PeripheralBaseAddr = 0;
  /* Initialize the DMA_MemoryBaseAddr member */
  DMA_InitStruct->DMA_MemoryBaseAddr = 0;
  /* Initialize the DMA_DIR member */
  DMA_InitStruct->DMA_DIR = DMA_DIR_PeripheralSRC;
  /* Initialize the DMA_BufferSize member */
  DMA_InitStruct->DMA_BufferSize = 0;
  /* Initialize the DMA_PeripheralInc member */
  DMA_InitStruct->DMA_PeripheralInc = DMA_PeripheralInc_Disable;
  /* Initialize the DMA_MemoryInc member */
  DMA_InitStruct->DMA_MemoryInc = DMA_MemoryInc_Disable;
  /* Initialize the DMA_PeripheralDataSize member */
  DMA_InitStruct->DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
  /* Initialize the DMA_MemoryDataSize member */
  DMA_InitStruct->DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
  /* Initialize the DMA_Mode member */
  DMA_InitStruct->DMA_Mode = DMA_Mode_Normal;
  /* Initialize the DMA_Priority member */
  DMA_InitStruct->DMA_Priority = DMA_Priority_Low;
  /* Initialize the DMA_M2M member */
  DMA_InitStruct->DMA_M2M = DMA_M2M_Disable;
}

/**
  * @brief  Enables or disables the specified DMAy Channelx.
  * @param  DMAy_Channelx: where y can be 1 or 2 to select the DMA and x can be 
  *         1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel.
  * @param  NewState: new state of the DMAy Channelx. 
  *         This parameter can be: ENABLE or DISABLE.
  * @retval None
  */
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_Channelx->CCR |= DMA_CCR1_EN;
  }
  else
  {
    /* Disable the selected DMAy Channelx */
    DMAy_Channelx->CCR &= (uint16_t)(~DMA_CCR1_EN);
  }
}

/**
  * @}
  */

/** @defgroup DMA_Group2 Data Counter functions
 *  @brief   Data Counter functions 
 *
@verbatim   
 ===============================================================================
                      ##### Data Counter functions #####
 ===============================================================================
    [..] This subsection provides function allowing to configure and read the buffer 
         size (number of data to be transferred).The DMA data counter can be written 
         only when the DMA channel is disabled (ie. after transfer complete event).
    [..] The following function can be used to write the Channel data counter value:
         (+) void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t 
             DataNumber).
    -@- It is advised to use this function rather than DMA_Init() in situations 
        where only the Data buffer needs to be reloaded.
    [..] The DMA data counter can be read to indicate the number of remaining transfers 
         for the relative DMA channel. This counter is decremented at the end of each 
         data transfer and when the transfer is complete: 
         (+) If Normal mode is selected: the counter is set to 0.
         (+) If Circular mode is selected: the counter is reloaded with the initial 
         value(configured before enabling the DMA channel).
    [..] The following function can be used to read the Channel data counter value:
         (+) uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx).

@endverbatim
  * @{
  */

/**
  * @brief  Sets the number of data units in the current DMAy Channelx transfer.
  * @param  DMAy_Channelx: where y can be 1 or 2 to select the DMA and x can be 
  *         1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel.
  * @param  DataNumber: The number of data units in the current DMAy Channelx
  *         transfer.
  * @note   This function can only be used when the DMAy_Channelx is disabled.
  * @retval None.
  */
void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber)
{
  /* Check the parameters */
  assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx));
  
/*--------------------------- DMAy Channelx CNDTR Configuration ---------------*/
  /* Write to DMAy Channelx CNDTR */
  DMAy_Channelx->CNDTR = DataNumber;  
}

/**
  * @brief  Returns the number of remaining data units in the current
  *         DMAy Channelx transfer.
  * @param  DMAy_Channelx: where y can be 1 or 2 to select the DMA and x can be 
  *         1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel.
  * @retval The number of remaining data units in the current DMAy Channelx
  *         transfer.
  */
uint16_t 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 */
  return ((uint16_t)(DMAy_Channelx->CNDTR));
}

/**
  * @}
  */

/** @defgroup DMA_Group3 Interrupts and flags management functions
 *  @brief   Interrupts and flags management functions 
 *
@verbatim   
 ===============================================================================
          ##### Interrupts and flags management functions #####
 ===============================================================================
    [..] This subsection provides functions allowing to configure the DMA Interrupts 
         sources and check or clear the flags or pending bits status.
         The user should identify which mode will be used in his application to manage 
         the DMA controller events: Polling mode or Interrupt mode. 
  *** Polling Mode ***
  ====================
    [..] Each DMA channel can be managed through 4 event Flags:(y : DMA Controller 
         number  x : DMA channel number ).
         (#) DMAy_FLAG_TCx : to indicate that a Transfer Complete event occurred.
         (#) DMAy_FLAG_HTx : to indicate that a Half-Transfer Complete event occurred.
         (#) DMAy_FLAG_TEx : to indicate that a Transfer Error occurred.
         (#) DMAy_FLAG_GLx : to indicate that at least one of the events described 
             above occurred.
    -@- Clearing DMAy_FLAG_GLx results in clearing all other pending flags of the 
        same channel (DMAy_FLAG_TCx, DMAy_FLAG_HTx and DMAy_FLAG_TEx).
    [..]In this Mode it is advised to use the following functions:
        (+) FlagStatus DMA_GetFlagStatus(uint32_t DMA_FLAG);
        (+) void DMA_ClearFlag(uint32_t DMA_FLAG);

  *** Interrupt Mode ***
  ======================
    [..] Each DMA channel can be managed through 4 Interrupts:
    (+) Interrupt Source
       (##) DMA_IT_TC: specifies the interrupt source for the Transfer Complete 
            event.
       (##) DMA_IT_HT : specifies the interrupt source for the Half-transfer Complete 
            event.
       (##) DMA_IT_TE : specifies the interrupt source for the transfer errors event.
       (##) DMA_IT_GL : to indicate that at least one of the interrupts described 
            above occurred.
    -@@- Clearing DMA_IT_GL interrupt results in clearing all other interrupts of 
        the same channel (DMA_IT_TCx, DMA_IT_HT and DMA_IT_TE).
    [..]In this Mode it is advised to use the following functions:
        (+) void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, 
            FunctionalState NewState);
        (+) ITStatus DMA_GetITStatus(uint32_t DMA_IT);
        (+) void DMA_ClearITPendingBit(uint32_t DMA_IT);

@endverbatim
  * @{
  */

/**
  * @brief  Enables or disables the specified DMAy Channelx interrupts.
  * @param  DMAy_Channelx: where y can be 1 or 2 to select the DMA and x can be 
  *         1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel.
  * @param  DMA_IT: specifies the DMA interrupts sources to be enabled
  *         or disabled. 
  *   This parameter can be any combination of the following values:
  *     @arg DMA_IT_TC: Transfer complete interrupt mask
  *     @arg DMA_IT_HT: Half transfer interrupt mask
  *     @arg DMA_IT_TE: Transfer error interrupt mask
  * @param  NewState: new state of the specified DMA interrupts.
  *         This parameter can be: ENABLE or DISABLE.
  * @retval None
  */
void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t 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 */
    DMAy_Channelx->CCR |= DMA_IT;
  }
  else
  {
    /* Disable the selected DMA interrupts */
    DMAy_Channelx->CCR &= ~DMA_IT;
  }
}

/**
  * @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.
  *     
  * @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 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 DMA1 ISR register value */
    tmpreg = DMA1->ISR;
  }
  else
  {
    /* Get DMA2 ISR register value */
    tmpreg = DMA2->ISR;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲专区一二三| 91麻豆国产香蕉久久精品| 国产精品系列在线观看| 91视频com| 久久伊人蜜桃av一区二区| 亚洲欧美激情插| 国产最新精品免费| 欧美日韩中文精品| 1区2区3区欧美| 国产精一品亚洲二区在线视频| 欧美日精品一区视频| 亚洲视频一二三区| 丰满岳乱妇一区二区三区| 欧美一卡二卡在线| 亚洲一区在线观看网站| 99在线精品一区二区三区| 精品88久久久久88久久久| 日韩国产在线一| 欧美影视一区在线| 亚洲色图欧美偷拍| 粉嫩一区二区三区性色av| 精品久久久久久久久久久院品网| 亚洲综合男人的天堂| 色综合天天综合给合国产| 国产欧美一区二区在线观看| 国内精品不卡在线| 久久综合九色综合欧美就去吻 | 欧美激情一区二区三区不卡 | 视频一区二区国产| 精品视频1区2区| 亚洲成在线观看| 91国产精品成人| 一区二区在线免费| 欧美在线观看禁18| 亚洲成a天堂v人片| 91精品国产手机| 蜜臀久久99精品久久久久宅男 | 91蜜桃免费观看视频| 中文久久乱码一区二区| 高清免费成人av| 国产农村妇女毛片精品久久麻豆 | 久久97超碰国产精品超碰| 555夜色666亚洲国产免| 美腿丝袜亚洲三区| 国产午夜精品一区二区三区视频| 国产精品一区二区三区网站| 国产喂奶挤奶一区二区三区| 国产成人综合亚洲网站| 中文字幕乱码久久午夜不卡| 99免费精品视频| 亚洲在线观看免费视频| 91精品国产高清一区二区三区蜜臀| 蜜桃精品视频在线观看| 国产日韩视频一区二区三区| 99精品久久只有精品| 樱桃视频在线观看一区| 91精品福利在线一区二区三区 | 久久先锋影音av鲁色资源网| 高清久久久久久| 亚洲成在线观看| 精品99一区二区三区| 97久久精品人人澡人人爽| 亚洲午夜电影在线| 久久综合久久综合久久| 91蜜桃免费观看视频| 日韩一区精品视频| 欧美高清一级片在线观看| 91福利在线播放| 激情综合亚洲精品| 自拍偷拍亚洲激情| 日韩欧美综合一区| 99久久国产综合精品女不卡| 午夜精品福利久久久| 国产日韩欧美不卡| 欧美日韩国产免费一区二区 | 久久99九九99精品| 一区二区中文视频| 日韩亚洲欧美中文三级| 91在线视频网址| 久久99精品国产.久久久久| 亚洲裸体在线观看| 久久夜色精品一区| 欧美高清激情brazzers| av一本久道久久综合久久鬼色| 免费欧美日韩国产三级电影| 最新中文字幕一区二区三区| 精品国产三级a在线观看| 欧美性受xxxx黑人xyx性爽| 国产91在线|亚洲| 日韩高清中文字幕一区| 亚洲精品视频在线观看网站| 久久久久久久久久电影| 日韩一区二区中文字幕| 欧美视频在线观看一区二区| 不卡在线观看av| 国产久卡久卡久卡久卡视频精品| 视频一区免费在线观看| 亚洲一区二区三区四区不卡| 国产精品美女久久久久av爽李琼 | 欧美乱妇一区二区三区不卡视频| www.欧美色图| 国产91高潮流白浆在线麻豆| 激情综合色综合久久| 免费视频最近日韩| 日韩电影在线免费看| 亚洲国产精品尤物yw在线观看| 亚洲欧洲精品成人久久奇米网| 久久综合色婷婷| 久久先锋影音av鲁色资源网| 日韩一区二区精品葵司在线| 欧美日韩一区三区四区| 91福利国产精品| 欧美综合色免费| 欧美午夜精品电影| 欧美艳星brazzers| 欧美日韩精品一区二区在线播放 | 午夜免费久久看| 亚洲一区二区三区国产| 亚洲第一会所有码转帖| 亚洲五月六月丁香激情| 五月综合激情日本mⅴ| 天天色天天操综合| 奇米一区二区三区| 另类小说色综合网站| 国产乱人伦精品一区二区在线观看 | 在线精品视频小说1| 91国偷自产一区二区开放时间| 日本韩国一区二区| 欧美日免费三级在线| 日韩亚洲欧美高清| 久久精品人人做人人爽97| 国产精品视频九色porn| 怡红院av一区二区三区| 日本女人一区二区三区| 国产美女精品在线| 成人app网站| 欧美日韩久久不卡| 久久久国产午夜精品| 中文字幕日韩精品一区| 亚洲一卡二卡三卡四卡 | 成人免费精品视频| 在线观看免费亚洲| 日韩欧美一级片| 国产精品成人在线观看| 亚洲小说欧美激情另类| 另类小说视频一区二区| av电影在线观看一区| 欧美精品电影在线播放| 欧美精品一区男女天堂| 欧美日韩免费一区二区三区 | 97久久久精品综合88久久| 日本乱码高清不卡字幕| 色激情天天射综合网| 欧美三区在线视频| 日韩一级免费一区| 中文字幕不卡在线观看| 亚洲成va人在线观看| 久久福利资源站| 99国产精品一区| 在线不卡一区二区| 中文字幕一区在线观看视频| 一区二区三区四区高清精品免费观看| 亚洲小少妇裸体bbw| 极品美女销魂一区二区三区| 91久久一区二区| 日韩精品一区二| 亚洲精品高清视频在线观看| 免费高清在线一区| 在线亚洲免费视频| 欧美xxxx在线观看| 亚洲精品视频在线观看免费 | 91精品国产综合久久久久久久久久 | 国产欧美一区二区精品性色超碰| 亚洲私人黄色宅男| 另类小说视频一区二区| 99视频国产精品| 久久久久国产精品免费免费搜索| 综合分类小说区另类春色亚洲小说欧美| 亚洲.国产.中文慕字在线| 国产精品1区2区3区在线观看| 成a人片亚洲日本久久| 91精品久久久久久久99蜜桃| √…a在线天堂一区| 久久99深爱久久99精品| 欧美精品黑人性xxxx| 中文字幕亚洲成人| 国产在线精品一区二区| 欧美唯美清纯偷拍| 一区二区在线观看视频| 国产麻豆视频精品| 欧美日韩黄色一区二区| 亚洲天天做日日做天天谢日日欢| 成人性视频免费网站| 欧美成人乱码一区二区三区| 亚洲成精国产精品女| 99久久久无码国产精品| 国产精品久久久久久福利一牛影视| 青青草国产成人99久久| 欧美色图在线观看| 国产三级精品三级在线专区|