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

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

?? 71x_rccu.c

?? STR7系列32位ARM控制器的固件庫
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
* File Name          : 71x_rccu.c
* Author             : MCD Application Team
* Version            : V4.0
* Date               : 10/09/2007
* Description        : This file provides all the RCCU firmware functions.
********************************************************************************
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/

/* Includes ------------------------------------------------------------------*/
#include "71x_rccu.h"

/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/

/*******************************************************************************
* Function Name  : RCCU_Div2Config
* Description    : This routine is used to enable or disable the programmable
*                  clock division of the CLOCK1 input clock signal by 2. It 
*                  sets or clears the Div2 flag in the CLK_FLAG register.
* Input          : - NewState: specifies whether the programmable divider can 
*                     divide the CLOCK1 input clock signal by two or not.
*                     it can be: 
*                     ENABLE to enable the division by two of CLK signal. 
*                     DISABLE to disable the division by two of CLK signal.
* Output         : None.
* Return         : None.
*******************************************************************************/
void RCCU_Div2Config (FunctionalState NewState)
{
  /* CLK is divided by 2 */	
  if (NewState == ENABLE)
  {
    RCCU->CFR |= RCCU_Div2_Mask;
  }  
  /* No division of CLK frequency */
  else
  {
    RCCU->CFR &= ~RCCU_Div2_Mask;
  }
}

/*******************************************************************************
* Function Name  : RCCU_Div2Status
* Description    : This routine is used to get the current status of the
*                  programmable clock division by two. It checks the status 
*                  of the Div2 flag in the CLK_FLAG register.
* Input          : None.
* Output         : None.
* Return         : The Div2 Flag status.
*******************************************************************************/
FlagStatus RCCU_Div2Status (void)
{
  if ((RCCU->CFR & RCCU_Div2_Mask) == 0)
  {
    return RESET;
  }
  else
  {
    return SET;	
  }
}

/*******************************************************************************
* Function Name  : RCCU_MCLKConfig
* Description    : This routine is used to configure the MCLK clock divider.
* Input          : - New_Clock: Specifies the MCLK clock divider value. 
*                     it can be: 
*                     RCCU_DEFAULT, RCCU_RCLK_2, RCCU_RCLK_4, RCCU_RCLK_8                   
* Output         : None.
* Return         : None.
*******************************************************************************/
void RCCU_MCLKConfig (RCCU_Clock_Div New_Clock)
{
  PCU->MDIVR = (PCU->MDIVR & ~RCCU_FACT_Mask) | New_Clock;
}

/*******************************************************************************
* Function Name  : RCCU_PCLK1Config
* Description    : Selects the division factor for RCLK to obtain the
*                  PCLK1 clock for the APB1 fast peripherals (PCLK1).
* Input          : - New_Clock : the new PCLK1 clock prescaler division value
*                     it can be: 
*                     RCCU_DEFAULT, RCCU_RCLK_2, RCCU_RCLK_4, RCCU_RCLK_8
* Output         : None.
* Return         : None.
*******************************************************************************/
void RCCU_PCLK1Config (RCCU_Clock_Div New_Clock)
{
  PCU->PDIVR = (PCU->PDIVR & ~RCCU_FACT1_Mask) | New_Clock;
}

/*******************************************************************************
* Function Name  : RCCU_PCLK2Config
* Description    : Selects the division factor for RCLK to obtain the
*                  PCLK2 clock for the APB2 peripherals (PCLK2).
* Input          : - New_Clock : the new PCLK2 clock prescaler division value
*                     it can be: 
*                     RCCU_DEFAULT, RCCU_RCLK_2, RCCU_RCLK_4, RCCU_RCLK_8
* Output         : None.
* Return         : None.
*******************************************************************************/
void RCCU_PCLK2Config (RCCU_Clock_Div New_Clock)
{
  PCU->PDIVR = (PCU->PDIVR & ~RCCU_FACT2_Mask) | (New_Clock << RCCU_FACT2_Index);
}

/*******************************************************************************
* Function Name  : RCCU_PLL1Config
* Description    : Configures the PLL1 division and multiplication factors.
* Input          : - New_Mul: the PLL1 multiplication factor it can be: 
*                     RCCU_PLL1_Mul_12, RCCU_PLL1_Mul_16,RCCU_PLL1_Mul_20,
*                     RCCU_PLL1_Mul_24
*                  - New_Div: the PLL1 division factor it can be: 
*                     RCCU_Div_1, RCCU_Div_2, RCCU_Div_3, RCCU_Div_4,RCCU_Div_5,
*                     RCCU_Div_6, RCCU_Div_7
* Output         : None.
* Return         : None.
*******************************************************************************/
void RCCU_PLL1Config (RCCU_PLL1_Mul New_Mul, RCCU_PLL_Div New_Div)
{
  /* Turn off the PLL1 by setting bits DX[2:0] */
  RCCU->PLL1CR = 0x0007;
   
  /* Set the PLL1 multiplication factor */
  RCCU->PLL1CR =  New_Mul << RCCU_MX_Index;

  /* Set the PLL1 division factor */
  RCCU->PLL1CR |=  New_Div;

  /* Set the PLL1 FREF_RANGE bit according to the PLL1 input frequency */
  if (RCCU_FrequencyValue(RCCU_CLK2) > 3000000)
  {
    RCCU->PLL1CR |= RCCU_FREFRANGE_Mask;
  }
   
  /* Set the CK2_16 Bit in the CFR to allow PLL1 to be selected */
  RCCU->CFR |= RCCU_CK2_16_Mask;
}

/*******************************************************************************
* Function Name  : RCCU_PLL2Config
* Description    : Configures the PLL2 division and multiplication factors.
* Input          : - New_Mul: the PLL2 multplication factor it can be:
*                     RCCU_PLL2_Mul_12, RCCU_PLL2_Mul_16, RCCU_PLL2_Mul_20,
*                     RCCU_Mul_PLL2_28
*                : - New_Div: the PLL2 division factor it can be:
*                     RCCU_Div_1, RCCU_Div_2, RCCU_Div_3, RCCU_Div_4,
*                     RCCU_Div_5, RCCU_Div_6, RCCU_Div_7
*                  - HCLK_Clock: the clock value present on HCLK pin (in Hz).  
* Output         : None.
* Return         : None.
*******************************************************************************/
void RCCU_PLL2Config (RCCU_PLL2_Mul New_Mul, RCCU_PLL_Div New_Div,
                       u32 HCLK_Clock)
{
  u32 Tmp = (PCU->PLL2CR & ~RCCU_MX_Mask) | (New_Mul << RCCU_MX_Index);
  PCU->PLL2CR = (Tmp & ~RCCU_DX_Mask) | (New_Div  | RCCU_PLLEN_Mask);
  
  /* Set the PLL2 FRQRNG bit according to the PLL2 input frequency */
  if (HCLK_Clock < 3000000)
  {
    PCU->PLL2CR &= ~RCCU_FRQRNG_Mask;
  }
  else
  {
    PCU->PLL2CR |= RCCU_FRQRNG_Mask;
  }
}

/*******************************************************************************
* Function Name  : RCCU_RCLKSourceConfig
* Description    : Selects the clock source for the RCLK.
* Input          : - New_Clock: the RCLK clock source, it can be:
*                     RCCU_PLL1_Output, RCCU_CLOCK2_16, RCCU_CLOCK2, RCCU_CK_AF                               
* Output         : None.
* Return         : None.
*******************************************************************************/
void RCCU_RCLKSourceConfig (RCCU_RCLK_Clocks New_Clock)
{
  switch (New_Clock)
  {
    case RCCU_CLOCK2:
      /* Reset the CSU_CKSEL bit: CLK2 provides the system clock */
      RCCU->CFR &= ~RCCU_CSU_CKSEL_Mask;
      /* Set the CK2_16 Bit in the CFR */
      RCCU->CFR |= RCCU_CK2_16_Mask;
      /* Deselect The CKAF */
      RCCU->CCR   &= ~RCCU_CKAF_SEL_Mask;
      /* Switch off the PLL1 */
      RCCU_PLL1Disable();
      break;
    
    case RCCU_CLOCK2_16:
      /* Reset the CK2_16 Bit in the CFR */
      RCCU->CFR &= ~RCCU_CK2_16_Mask;
      /* Deselect The CKAF */
      RCCU->CCR   &= ~RCCU_CKAF_SEL_Mask;
      break;

    case RCCU_PLL1_Output:
      /* Set the CK2_16 Bit in the CFR */
      RCCU->CFR |= RCCU_CK2_16_Mask;
      
      /* If all DX bit are set the PLL lock flag in meaningless */
      if ((RCCU->PLL1CR & 0x0007) != 7)
      {
      	/* Waits the PLL1 to lock if DX bits are different from '111' */
        while (!(RCCU->CFR & RCCU_LOCK_Mask))
        {}
      }
      /* Deselect The CKAF */
      RCCU->CCR  &= ~RCCU_CKAF_SEL_Mask;
      /* Select The CSU_CKSEL */
      RCCU->CFR |= RCCU_CSU_CKSEL_Mask;
      break;
    
    case RCCU_CK_AF:
      /* Set CKAF_SEL bit */
      RCCU->CCR |= 0x04;
      /* Switch off the PLL1 */
      RCCU_PLL1Disable();
      break;
    
  }
}

/*******************************************************************************
* Function Name  : RCCU_RCLKClockSource
* Description    : Gets and returns the current clock source of the RCLK.
* Input          : None.
* Output         : None.
* Return         : The current RCLK clock source which can be:
*                  RCCU_PLL1_Output, RCCU_CLOCK2_16, RCCU_CLOCK2, RCCU_CK_AF
*******************************************************************************/
RCCU_RCLK_Clocks RCCU_RCLKClockSource (void)
{
  /* RCLK = CK_AF */
  if (RCCU->CCR & RCCU_CKAF_SEL_Mask)
  {
    return RCCU_CK_AF;
  }
  
  /* RCLK = CLK2/16 */
  else if ((RCCU->CFR & RCCU_CK2_16_Mask) == 0)
  {
    return RCCU_CLOCK2_16;
  }
  
  /* RCLK = PLL1 output */
  else if (RCCU->CFR & RCCU_CSU_CKSEL_Mask)
  {
    return RCCU_PLL1_Output;
  }
  
  /* RCLK = CLK2 */
  else 
  {
    return RCCU_CLOCK2;
  }
}

/*******************************************************************************
* Function Name  : RCCU_USBCLKConfig
* Description    : Selects the clock source of the USB peripheral.
* Input          : - New_Clock: the USB clock source it can be:
*                     RCCU_PLL2_Output, RCCU_USBCK
* Output         : None.
* Return         : None.
*******************************************************************************/
void RCCU_USBCLKConfig (RCCU_USB_Clocks New_Clock)
{
  /* PLL2 is the clock source to the USB */
  if (New_Clock == RCCU_PLL2_Output)
  {
    PCU->PLL2CR |= RCCU_USBEN_Mask;
  }
  
  /* USBCLK pin is the clock source to the USB */
  else 
  {
    PCU->PLL2CR &= ~RCCU_USBEN_Mask;
  }
}

/*******************************************************************************
* Function Name  : RCCU_USBClockSource
* Description    : Get the clock source of the USB peripheral.
* Input          : None.
* Output         : None.
* Return         : RCCU_USB_Clocks
*                  it can be: RCCU_PLL2_Output, RCCU_USBCK
*******************************************************************************/
RCCU_USB_Clocks RCCU_USBClockSource (void)
{
  if (PCU->PLL2CR & RCCU_USBEN_Mask)
  {
    return RCCU_PLL2_Output;
  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.欧美精品一二区| 不卡区在线中文字幕| 亚洲国产精品视频| 亚洲免费观看高清完整版在线 | 国产精品国产自产拍在线| 国产视频视频一区| 国产精品日日摸夜夜摸av| 国产欧美一区二区精品婷婷 | 国产激情一区二区三区| 国产精品亚洲视频| jizzjizzjizz欧美| 91国偷自产一区二区开放时间 | 国产一区欧美一区| 高清国产午夜精品久久久久久| 国产东北露脸精品视频| 成人晚上爱看视频| 欧美日韩一本到| 欧美成人女星排名| 中文字幕亚洲成人| 亚洲国产精品久久不卡毛片| 亚洲成人精品一区二区| 亚洲风情在线资源站| 看电影不卡的网站| 丁香激情综合国产| 欧美日韩夫妻久久| 国产日韩欧美麻豆| 樱桃视频在线观看一区| 男人的j进女人的j一区| 懂色av一区二区夜夜嗨| 欧美一a一片一级一片| 精品国产免费人成在线观看| 久久精品免费在线观看| 一区二区三区欧美| 久久er精品视频| 97se亚洲国产综合在线| 欧美丰满少妇xxxxx高潮对白| 久久综合久久综合九色| 成人免费一区二区三区视频 | 国产精品18久久久久久久久久久久 | 国产美女久久久久| 精品视频123区在线观看| 久久青草欧美一区二区三区| 亚洲最新视频在线播放| 狠狠色丁香婷综合久久| 在线视频一区二区三区| 亚洲国产高清在线| 香蕉乱码成人久久天堂爱免费| 成熟亚洲日本毛茸茸凸凹| 精品视频一区二区不卡| 欧美国产日本视频| 青青草国产精品97视觉盛宴| 91视频在线看| 精品久久久久久久人人人人传媒 | 成人爱爱电影网址| 日韩一本二本av| 夜夜精品视频一区二区| 成人国产视频在线观看 | 国产成人综合在线播放| 欧美狂野另类xxxxoooo| 亚洲精品少妇30p| kk眼镜猥琐国模调教系列一区二区| 精品国产污污免费网站入口| 亚洲v日本v欧美v久久精品| 一本久久综合亚洲鲁鲁五月天| 国产亚洲精品bt天堂精选| 蜜桃传媒麻豆第一区在线观看| 欧美性生活久久| 亚洲在线视频一区| 在线精品视频免费观看| 亚洲精品五月天| 91久久精品一区二区三区| 成人欧美一区二区三区视频网页| 国产成人在线视频网站| 国产亚洲精品资源在线26u| 蜜臀久久久99精品久久久久久| 在线看日韩精品电影| 亚洲午夜免费视频| 欧美三电影在线| 视频一区在线视频| 日韩欧美自拍偷拍| 国产一区二区三区四区五区入口| 精品久久久久久久久久久院品网 | 欧美伦理电影网| 视频一区在线视频| 精品嫩草影院久久| 国产一区二区三区蝌蚪| 国产精品麻豆网站| 一本大道久久a久久综合婷婷| 亚洲欧美日韩中文字幕一区二区三区| 99re在线视频这里只有精品| 亚洲婷婷在线视频| 在线不卡免费欧美| 久久99国产精品成人| 亚洲国产精品v| 欧美自拍偷拍一区| 久久精品国产久精国产| 久久视频一区二区| 色综合久久精品| 丝袜美腿一区二区三区| www日韩大片| 波多野结衣中文字幕一区 | 欧美日韩一级二级| 激情综合色播五月| 中文字幕av资源一区| 成人福利视频在线看| 综合欧美一区二区三区| 欧美二区三区91| 国产精品一区不卡| 亚洲国产精品天堂| 国产日产欧美一区二区视频| www.亚洲精品| 美腿丝袜亚洲一区| 亚洲精品视频在线观看网站| 日韩视频免费观看高清完整版 | 91麻豆精品在线观看| 美女精品自拍一二三四| 亚洲欧美日韩国产另类专区 | 国产日韩精品一区二区三区在线| 91成人免费电影| 国产麻豆精品95视频| 亚洲福利视频一区二区| 国产精品视频九色porn| 欧美一区二区黄色| 91免费观看视频| 国产乱码精品1区2区3区| 亚洲国产日韩综合久久精品| 国产欧美日韩麻豆91| 欧美成人一级视频| 欧美日韩国产电影| 91美女在线观看| 国产精品一区不卡| 精品中文字幕一区二区| 午夜一区二区三区在线观看| 日本一区二区在线不卡| 久久日韩精品一区二区五区| 欧美日韩免费视频| 91国产免费观看| 成人av资源下载| 国产69精品久久99不卡| 久草精品在线观看| 免费成人在线播放| 丝袜美腿亚洲一区| 日韩国产精品久久久久久亚洲| 亚洲电影你懂得| 亚洲第一狼人社区| 亚洲电影一区二区三区| 一区二区三区四区激情| 亚洲欧美日韩在线不卡| 亚洲免费观看高清在线观看| 中文字幕免费不卡在线| 亚洲国产成人在线| 亚洲国产高清不卡| 中文字幕一区三区| 亚洲视频综合在线| 亚洲欧美乱综合| 亚洲精品视频在线观看网站| 一区二区三区日韩| 一区二区欧美视频| 亚洲成年人影院| 日av在线不卡| 久久国产精品99久久久久久老狼| 美腿丝袜亚洲综合| 国产一区在线不卡| 成人高清在线视频| 欧美性极品少妇| 制服丝袜成人动漫| 久久色在线观看| 日韩一区欧美一区| 偷拍一区二区三区| 久久疯狂做爰流白浆xx| 国产精品亚洲第一区在线暖暖韩国| 成人综合婷婷国产精品久久 | 亚洲午夜久久久久久久久久久| 亚洲精品乱码久久久久久日本蜜臀| 亚洲色图都市小说| 亚洲chinese男男1069| 久久精品99久久久| av不卡免费在线观看| 欧美老年两性高潮| 久久久久久久久久电影| 亚洲欧洲日韩av| 天堂va蜜桃一区二区三区漫画版| 日本欧洲一区二区| gogogo免费视频观看亚洲一| 色久优优欧美色久优优| 欧美电视剧免费观看| 亚洲图片另类小说| 麻豆一区二区三区| 99精品桃花视频在线观看| 欧美日韩成人综合在线一区二区| 欧美精品一区视频| 亚洲综合在线电影| 国产精品综合久久| 欧美精品一级二级三级| 国产精品天美传媒| 日本aⅴ精品一区二区三区| 91网站视频在线观看| 欧美精品一区二区不卡 | 日韩欧美在线综合网| 日韩一区在线看|