您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ HAL_RCC_OscConfig函数代码示例

51自学网 2021-06-01 21:21:38
  C++
这篇教程C++ HAL_RCC_OscConfig函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中HAL_RCC_OscConfig函数的典型用法代码示例。如果您正苦于以下问题:C++ HAL_RCC_OscConfig函数的具体用法?C++ HAL_RCC_OscConfig怎么用?C++ HAL_RCC_OscConfig使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了HAL_RCC_OscConfig函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: SystemClock_Config

/** System Clock Configuration*/void SystemClock_Config(void){  RCC_OscInitTypeDef RCC_OscInitStruct;  RCC_ClkInitTypeDef RCC_ClkInitStruct;  __PWR_CLK_ENABLE();  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.HSEState = RCC_HSE_ON;//  RCC_OscInitStruct.OscillatorType |= RCC_OSCILLATORTYPE_LSI;  // uncomment when LSI clock is used for RTC//  RCC_OscInitStruct.LSIState = RCC_LSI_ON;        // uncomment when LSI Clock is used for RTC  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;  RCC_OscInitStruct.PLL.PLLM = 5;  RCC_OscInitStruct.PLL.PLLN = 210;  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;  RCC_OscInitStruct.PLL.PLLQ = 4;  HAL_RCC_OscConfig(&RCC_OscInitStruct);  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1                              |RCC_CLOCKTYPE_PCLK2;  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);#ifdef USE_STM32F4_RTC  PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_HSE_DIV8;  // Comment this line if you want to use LSI clock//  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;     // Remove comment if you want to use LSI clock  HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);#endif /* USE_STM32F4_RTC */}
开发者ID:glocklueng,项目名称:STM32F4-Dev,代码行数:38,


示例2: SystemClock_Config

/** System Clock Configuration */void SystemClock_Config(void){  RCC_OscInitTypeDef RCC_OscInitStruct;  RCC_ClkInitTypeDef RCC_ClkInitStruct;  __PWR_CLK_ENABLE();  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);  RCC_OscInitStruct.OscillatorType 	= RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.HSEState 			 	= RCC_HSE_ON;  RCC_OscInitStruct.PLL.PLLState 		= RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource 	= RCC_PLLSOURCE_HSE;  RCC_OscInitStruct.PLL.PLLM 				= 8;  RCC_OscInitStruct.PLL.PLLN 				= 336;  RCC_OscInitStruct.PLL.PLLP 				= RCC_PLLP_DIV2;  RCC_OscInitStruct.PLL.PLLQ 				= 7;  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){Error_Handler(RCC_CONFIG_FAIL);};  RCC_ClkInitStruct.ClockType 			= RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;  RCC_ClkInitStruct.SYSCLKSource 		= RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider 	= RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider 	= RCC_HCLK_DIV4;  RCC_ClkInitStruct.APB2CLKDivider 	= RCC_HCLK_DIV2;  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5)!= HAL_OK){Error_Handler(RCC_CONFIG_FAIL);};		/*Configures SysTick to provide 500Hz interval interrupts. (Read ADC once in two times)*/  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/500);	/* This function sets the source clock for the internal SysTick Timer to be the maximum,	   in our case, HCLK is now 168MHz*/  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);  /* SysTick_IRQn interrupt configuration */  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);}
开发者ID:Lone-L,项目名称:MicroP_Labs,代码行数:37,


示例3: SystemClock_Config

/** System Clock Configuration*/void SystemClock_Config(void){  RCC_OscInitTypeDef RCC_OscInitStruct;  RCC_ClkInitTypeDef RCC_ClkInitStruct;  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.HSEState = RCC_HSE_ON;  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;  HAL_RCC_OscConfig(&RCC_OscInitStruct);  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1;  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);  __HAL_RCC_AFIO_CLK_ENABLE();}
开发者ID:AlexanderHazard,项目名称:lcd_driver,代码行数:26,


示例4: SystemClock_Config

/** System Clock Configuration*/void SystemClock_Config(void){  RCC_OscInitTypeDef RCC_OscInitStruct;  RCC_ClkInitTypeDef RCC_ClkInitStruct;  RCC_PeriphCLKInitTypeDef PeriphClkInit;  __PWR_CLK_ENABLE();  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI;  RCC_OscInitStruct.MSIState = RCC_MSI_ON;  RCC_OscInitStruct.MSICalibrationValue = 0;  RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_5;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;  HAL_RCC_OscConfig(&RCC_OscInitStruct);  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);  PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2;  PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;  HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit);  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);  /* SysTick_IRQn interrupt configuration */  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);}
开发者ID:doebbertt,项目名称:mastering-stm32,代码行数:38,


示例5: SystemClock_Config

/** System Clock Configuration*/void SystemClock_Config(void){  RCC_OscInitTypeDef RCC_OscInitStruct;  RCC_ClkInitTypeDef RCC_ClkInitStruct;  __PWR_CLK_ENABLE();  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;  RCC_OscInitStruct.HSIState = RCC_HSI_ON;  RCC_OscInitStruct.HSICalibrationValue = 16;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;  RCC_OscInitStruct.PLL.PLLM = 8;  RCC_OscInitStruct.PLL.PLLN = 100;  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;  RCC_OscInitStruct.PLL.PLLQ = 4;  HAL_RCC_OscConfig(&RCC_OscInitStruct);  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1                              |RCC_CLOCKTYPE_PCLK2;  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV4;  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);  /* SysTick_IRQn interrupt configuration */  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);}
开发者ID:cjackie,项目名称:Quadcopter-Flight-Controller,代码行数:38,


示例6: PLL

/*System Clock source            = PLL (HSE)SYSCLK(Hz)                     = 48000000HCLK(Hz)                       = 48000000AHB Prescaler                  = 1APB1 Prescaler                 = 1HSE Frequency(Hz)              = 8000000PREDIV                         = 2PLLMUL                         = 12Flash Latency(WS)              = 1*/void HAL_MspInit( void ){  RCC_ClkInitTypeDef RCC_ClkInitStruct;  RCC_OscInitTypeDef RCC_OscInitStruct;  HAL_StatusTypeDef state = HAL_OK;  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.HSEState       = RCC_HSE_ON;  RCC_OscInitStruct.PLL.PLLState   = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource  = RCC_PLLSOURCE_HSE;  RCC_OscInitStruct.PLL.PREDIV     = RCC_PREDIV_DIV2;  RCC_OscInitStruct.PLL.PLLMUL     = RCC_PLL_MUL12;  state = HAL_RCC_OscConfig(&RCC_OscInitStruct);  if(state != HAL_OK)    while(1) { ; }  RCC_ClkInitStruct.ClockType      = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1);  RCC_ClkInitStruct.SYSCLKSource   = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider  = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;  state = HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1);  if(state != HAL_OK)    while(1) { ; }}
开发者ID:dongruibin,项目名称:MungBeanSprout,代码行数:35,


示例7: SystemClock_Config

/**  * @brief  System Clock Configuration  *         The system Clock is configured as follow :   *            System Clock source            = PLL (HSE)  *            SYSCLK(Hz)                     = 180000000  *            HCLK(Hz)                       = 180000000  *            AHB Prescaler                  = 1  *            APB1 Prescaler                 = 4  *            APB2 Prescaler                 = 2  *            HSE Frequency(Hz)              = 25000000  *            PLL_M                          = 25  *            PLL_N                          = 360  *            PLL_P                          = 2  *            PLL_Q                          = 7  *            VDD(V)                         = 3.3  *            Main regulator output voltage  = Scale1 mode  *            Flash Latency(WS)              = 5  * @param  None  * @retval None  */static void SystemClock_Config(void){  RCC_ClkInitTypeDef RCC_ClkInitStruct;  RCC_OscInitTypeDef RCC_OscInitStruct;  /* Enable Power Control clock */  __HAL_RCC_PWR_CLK_ENABLE();  /* The voltage scaling allows optimizing the power consumption when the device is      clocked below the maximum system frequency, to update the voltage scaling value      regarding system frequency refer to product datasheet.  */  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);    /* Enable HSE Oscillator and activate PLL with HSE as source */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.HSEState = RCC_HSE_ON;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;  RCC_OscInitStruct.PLL.PLLM = 25;  RCC_OscInitStruct.PLL.PLLN = 360;  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;  RCC_OscInitStruct.PLL.PLLQ = 7;  HAL_RCC_OscConfig(&RCC_OscInitStruct);   /* Activate the Over-Drive mode */  HAL_PWREx_EnableOverDrive();   /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2   clocks dividers */  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;    HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);}
开发者ID:451506709,项目名称:automated_machine,代码行数:56,


示例8: HAL_RTC_MspInit

/**  * @brief RTC MSP Initialization  *        This function configures the hardware resources used in this example  * @param hrtc: RTC handle pointer  *  * @note  Care must be taken when HAL_RCCEx_PeriphCLKConfig() is used to select  *        the RTC clock source; in this case the Backup domain will be reset in  *        order to modify the RTC Clock source, as consequence RTC registers (including  *        the backup registers) and RCC_BDCR register are set to their reset values.  *  * @retval None  */void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc){  RCC_OscInitTypeDef        RCC_OscInitStruct;  RCC_PeriphCLKInitTypeDef  PeriphClkInitStruct;  /*##-1- Enables the PWR Clock and Enables access to the backup domain ###################################*/  /* To change the source clock of the RTC feature (LSE, LSI), You have to:     - Enable the power clock using __HAL_RCC_PWR_CLK_ENABLE()     - Enable write access using HAL_PWR_EnableBkUpAccess() function before to       configure the RTC clock source (to be done once after reset).     - Reset the Back up Domain using __HAL_RCC_BACKUPRESET_FORCE() and       __HAL_RCC_BACKUPRESET_RELEASE().     - Configure the needed RTc clock source */  __HAL_RCC_PWR_CLK_ENABLE();  HAL_PWR_EnableBkUpAccess();  /*##-2- Configure LSE as RTC clock source ###################################*/  RCC_OscInitStruct.OscillatorType =  RCC_OSCILLATORTYPE_LSI;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;  RCC_OscInitStruct.LSIState = RCC_LSI_ON;  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)  {    Error_Handler();  }  PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;  if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)  {    Error_Handler();  }  /*##-3- Enable RTC peripheral Clocks #######################################*/  /* Enable RTC Clock */  __HAL_RCC_RTC_ENABLE();}
开发者ID:Joe-Merten,项目名称:Stm32-Tools-Evaluation,代码行数:48,


示例9: rtc_free

void rtc_free(void) {    // Enable Power clock    __PWR_CLK_ENABLE();    // Enable access to Backup domain    HAL_PWR_EnableBkUpAccess();    // Reset Backup domain    __HAL_RCC_BACKUPRESET_FORCE();    __HAL_RCC_BACKUPRESET_RELEASE();    // Disable access to Backup domain    HAL_PWR_DisableBkUpAccess();    // Disable LSI and LSE clocks    RCC_OscInitTypeDef RCC_OscInitStruct;    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE;    RCC_OscInitStruct.PLL.PLLState   = RCC_PLL_NONE;    RCC_OscInitStruct.LSIState       = RCC_LSI_OFF;    RCC_OscInitStruct.LSEState       = RCC_LSE_OFF;    HAL_RCC_OscConfig(&RCC_OscInitStruct);    rtc_inited = 0;}
开发者ID:AllenMcAfee,项目名称:Smoothie2,代码行数:24,


示例10: SetSysClock

/*Set SYSCLK=84MHZ */void SetSysClock(void){    RCC_OscInitTypeDef RCC_OscInitStruct;    RCC_ClkInitTypeDef RCC_ClkInitStruct;    __HAL_RCC_PWR_CLK_ENABLE();    __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;    RCC_OscInitStruct.HSEState = RCC_HSE_ON;    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;    RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;#ifdef USE_DEBUG_8MHz_XTAL    RCC_OscInitStruct.PLL.PLLM = 8;#else    RCC_OscInitStruct.PLL.PLLM = 12;#endif    RCC_OscInitStruct.PLL.PLLN = 336;    RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;    RCC_OscInitStruct.PLL.PLLQ = 7;    HAL_RCC_OscConfig(&RCC_OscInitStruct);    RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1                                  | RCC_CLOCKTYPE_PCLK2;    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;    RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;    HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);    // HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_SYSCLK, RCC_MCODIV_3);}
开发者ID:toyowata,项目名称:mbed,代码行数:39,


示例11: SystemClock_Config

/** * @brief  System Clock Configuration * @param  None * @retval None */void SystemClock_Config(void){  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};  RCC_OscInitTypeDef RCC_OscInitStruct = {0};    /* MSI is enabled after System reset, activate PLL with MSI as source */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI;  RCC_OscInitStruct.MSIState = RCC_MSI_ON;  RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_6;  RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_MSI;  RCC_OscInitStruct.PLL.PLLM = 1;  RCC_OscInitStruct.PLL.PLLN = 40;  RCC_OscInitStruct.PLL.PLLR = 2;  RCC_OscInitStruct.PLL.PLLP = 7;  RCC_OscInitStruct.PLL.PLLQ = 4;  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }    /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2     clocks dividers */  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;  if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }}
开发者ID:asebak,项目名称:IMU,代码行数:41,


示例12: SystemClock_Config

/** System Clock Configuration*/void SystemClock_Config(void){  RCC_OscInitTypeDef RCC_OscInitStruct;  RCC_ClkInitTypeDef RCC_ClkInitStruct;  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;  __PWR_CLK_ENABLE();  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_HSE;  //add RCC_OSCILLATORTYPE_LSI for LSI Clock  RCC_OscInitStruct.HSEState = RCC_HSE_ON;  RCC_OscInitStruct.LSIState = RCC_LSI_ON;        // Added for LSI Clock  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;  RCC_OscInitStruct.PLL.PLLM = 8;  RCC_OscInitStruct.PLL.PLLN = 336;  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;  RCC_OscInitStruct.PLL.PLLQ = 7;  HAL_RCC_OscConfig(&RCC_OscInitStruct);  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1                              |RCC_CLOCKTYPE_PCLK2;  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);  PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;//  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_HSE_DIV8;  //Comment this line if you want to use LSI clock  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;     // Remove comment if you want to use LSI clock  HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);}
开发者ID:glocklueng,项目名称:STM32F4-Dev,代码行数:38,


示例13: PLL

/*System Clock source            = PLL (HSE)SYSCLK(Hz)                     = 72000000HCLK(Hz)                       = 72000000AHB Prescaler                  = 1APB1 Prescaler                 = 2APB2 Prescaler                 = 1HSE Frequency(Hz)              = 8000000 // HSE_VALUEHSE PREDIV                     = 1PLLMUL                         = RCC_PLL_MUL9 (9)Flash Latency(WS)              = 2*/void HAL_MspInit( void ){  RCC_ClkInitTypeDef RCC_ClkInitStruct;  RCC_OscInitTypeDef RCC_OscInitStruct;  /* Enable HSE Oscillator and activate PLL with HSE as source */  RCC_OscInitStruct.OscillatorType  = RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.HSEState        = RCC_HSE_ON;  RCC_OscInitStruct.HSEPredivValue  = RCC_HSE_PREDIV_DIV1;  RCC_OscInitStruct.PLL.PLLState    = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource   = RCC_PLLSOURCE_HSE;  RCC_OscInitStruct.PLL.PLLMUL      = RCC_PLL_MUL9;  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)    while (1) { ; }  /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */  RCC_ClkInitStruct.ClockType       = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);  RCC_ClkInitStruct.SYSCLKSource    = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider   = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider  = RCC_HCLK_DIV2;    RCC_ClkInitStruct.APB2CLKDivider  = RCC_HCLK_DIV1;  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)    while(1) { ; }}
开发者ID:KitSprout,项目名称:RedBeanSprout,代码行数:36,


示例14: HAL_RTC_MspInit

/**  * @brief RTC MSP Initialization   *        This function configures the hardware resources used in this example  * @param hrtc: RTC handle pointer  *   * @note  Care must be taken when HAL_RCCEx_PeriphCLKConfig() is used to select   *        the RTC clock source; in this case the Backup domain will be reset in    *        order to modify the RTC Clock source, as consequence RTC registers (including   *        the backup registers) and RCC_BDCR register are set to their reset values.  *               * @retval None  */void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc){  RCC_OscInitTypeDef        RCC_OscInitStruct;  RCC_PeriphCLKInitTypeDef  PeriphClkInitStruct;    /*##-1- Enables the PWR Clock and Enables access to the backup domain ###################################*/  /* To change the source clock of the RTC feature (LSE, LSI), You have to:     - Enable the power clock using __HAL_RCC_PWR_CLK_ENABLE()     - Enable write access using HAL_PWR_EnableBkUpAccess() function before to        configure the RTC clock source (to be done once after reset).     - Reset the Back up Domain using __HAL_RCC_BACKUPRESET_FORCE() and        __HAL_RCC_BACKUPRESET_RELEASE().     - Configure the needed RTC clock source */  __HAL_RCC_PWR_CLK_ENABLE();  HAL_PWR_EnableBkUpAccess();  /*##-2- Configure LSE/LSI as RTC clock source ###############################*/#ifdef RTC_CLOCK_SOURCE_LSE    RCC_OscInitStruct.OscillatorType =  RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;  RCC_OscInitStruct.LSEState = RCC_LSE_ON;  RCC_OscInitStruct.LSIState = RCC_LSI_OFF;  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)  {     Error_Handler();  }    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;  if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)  {     Error_Handler();  }#elif defined (RTC_CLOCK_SOURCE_LSI)    RCC_OscInitStruct.OscillatorType =  RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;  RCC_OscInitStruct.LSIState = RCC_LSI_ON;  RCC_OscInitStruct.LSEState = RCC_LSE_OFF;  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)  {     Error_Handler();  }  PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;  if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)  {     Error_Handler();  }#else#error Please select the RTC Clock source inside the main.h file#endif /*RTC_CLOCK_SOURCE_LSE*/    /*##-3- Enable RTC peripheral Clocks #######################################*/   /* Enable RTC Clock */   __HAL_RCC_RTC_ENABLE();     /*##-4- Configure the NVIC for RTC Tamper ###################################*/  HAL_NVIC_SetPriority(TAMP_STAMP_IRQn, 0x0F, 0);  HAL_NVIC_EnableIRQ(TAMP_STAMP_IRQn);}
开发者ID:451506709,项目名称:automated_machine,代码行数:74,


示例15: SystemClock_Config

/**  * @brief  System Clock Configuration  *         The system Clock is configured as follow:  *    *            HSI48 used as clock source (USE_CLKSOURCE_CRSHSI48 defined in main.h)  *              - System Clock source            = HSI48  *              - SYSCLK(Hz)                     = 48000000  *              - HCLK(Hz)                       = 48000000  *              - AHB Prescaler                  = 1  *              - APB1 Prescaler                 = 1  *              - Flash Latency(WS)              = 1  *  *              - PLL(HSE) used as clock source (USE_CLKSOURCE_PLL defined in main.h)  *              - System Clock source            = PLL (HSE)  *              - SYSCLK(Hz)                     = 48000000  *              - HCLK(Hz)                       = 48000000  *              - AHB Prescaler                  = 1  *              - APB1 Prescaler                 = 1  *              - HSE Frequency(Hz)              = 8000000  *              - PREDIV                         = 1  *              - PLLMUL                         = 6  *              - Flash Latency(WS)              = 1  *  * @param  None  * @retval None  */static void SystemClock_Config(void){  RCC_ClkInitTypeDef RCC_ClkInitStruct;  RCC_OscInitTypeDef RCC_OscInitStruct;  #if defined (USE_CLKSOURCE_CRSHSI48)  static RCC_CRSInitTypeDef RCC_CRSInitStruct;#endif  #if defined (USE_CLKSOURCE_CRSHSI48)    /* Enable HSI48 Oscillator to be used as system clock source */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48;  HAL_RCC_OscConfig(&RCC_OscInitStruct);     /* Select HSI48 as system clock source and configure the HCLK and PCLK1   clock dividers */  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1);  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI48;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;    HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1);    /*Configure the clock recovery system (CRS)**********************************/    /*Enable CRS Clock*/  __CRS_CLK_ENABLE();     /* Default Synchro Signal division factor (not divided) */  RCC_CRSInitStruct.Prescaler = RCC_CRS_SYNC_DIV1;    /* Set the SYNCSRC[1:0] bits according to CRS_Source value */  RCC_CRSInitStruct.Source = RCC_CRS_SYNC_SOURCE_USB;    /* HSI48 is synchronized with USB SOF at 1KHz rate */  RCC_CRSInitStruct.ReloadValue =  __HAL_RCC_CRS_CALCULATE_RELOADVALUE(48000000, 1000);  RCC_CRSInitStruct.ErrorLimitValue = RCC_CRS_ERRORLIMIT_DEFAULT;    /* Set the TRIM[5:0] to the default value*/  RCC_CRSInitStruct.HSI48CalibrationValue = 0x20;     /* Start automatic synchronization */   HAL_RCCEx_CRSConfig (&RCC_CRSInitStruct);  #elif defined (USE_CLKSOURCE_PLL)    /* Enable HSE Oscillator and activate PLL with HSE as source  PLLCLK = (8 * 6) / 1) = 48 MHz */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.HSEState = RCC_HSE_ON;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;  RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1;  HAL_RCC_OscConfig(&RCC_OscInitStruct);     /* Select PLL as system clock source and configure the HCLK and PCLK1   clock dividers */  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1);  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;    HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1);  #endif /*USE_CLKSOURCE_CRSHSI48*/}
开发者ID:GreyCardinalRus,项目名称:stm32-cube,代码行数:92,


示例16: SystemClockHSE_Config

/**  * @brief  System Clock Configuration  *         The system Clock is configured as follow :   *            System Clock source            = PLL (HSE_CRYSTAL or HSE_BYPASS)   *            SYSCLK(Hz)                     = 180000000  *            HCLK(Hz)                       = 180000000  *            AHB Prescaler                  = 1  *            APB1 Prescaler                 = 4  *            APB2 Prescaler                 = 2  *            HSE Frequency(Hz)              = 8000000  *            PLL_M                          = 8  *            PLL_N                          = 360  *            PLL_P                          = 2  *            PLL_Q                          = 7  *            VDD(V)                         = 3.3  *            Main regulator output voltage  = Scale1 mode  *            Flash Latency(WS)              = 5  * @param  None  * @retval None  */void SystemClockHSE_Config(void){  RCC_ClkInitTypeDef RCC_ClkInitStruct;  RCC_OscInitTypeDef RCC_OscInitStruct;  HAL_StatusTypeDef ret = HAL_OK;      /* Enable Power Control clock */  __HAL_RCC_PWR_CLK_ENABLE();    /* The voltage scaling allows optimizing the power consumption when the device is      clocked below the maximum system frequency, to update the voltage scaling value      regarding system frequency refer to product datasheet.  */  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);  /* -1- Select HSI as system clock source to allow modification of the PLL configuration */  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;  if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)  {    Error_Handler();  }    /* -2- Enable HSE Oscillator, select it as PLL source and finally activate the PLL */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  #ifdef HSE_CRYSTAL    RCC_OscInitStruct.HSEState = RCC_HSE_ON;#elif defined (HSE_BYPASS)  RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;#endif /* HSE_CRYSTAL */  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;  RCC_OscInitStruct.PLL.PLLM = 8;  RCC_OscInitStruct.PLL.PLLN = 360;  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;  RCC_OscInitStruct.PLL.PLLQ = 7;  RCC_OscInitStruct.PLL.PLLR = 6;  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }     /* Activate the OverDrive to reach the 180 MHz Frequency */    ret = HAL_PWREx_EnableOverDrive();  if(ret != HAL_OK)  {    while(1) { ; }  }  /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2      clocks dividers */  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;    if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)  {    Error_Handler();  }    /* -4- Optional: Disable HSI Oscillator (if the HSI is no more needed by the application) */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;  RCC_OscInitStruct.HSIState = RCC_HSI_OFF;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }}
开发者ID:Lembed,项目名称:STM32CubeF4-mirrors,代码行数:91,


示例17: __attribute__

void __attribute__((weak)) SystemClock_Config(void) //TODO: rewrite in order to sysinit.c{  __PWR_CLK_ENABLE();  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);  RCC_OscInitTypeDef RCC_OscInitStruct;#if defined(HSE_VALUE) && (HSE_VALUE != 0)  // Enable HSE Oscillator and activate PLL with HSE as source.  // This is tuned for STM32F4-DISCOVERY; update it for your board.  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.HSEState = RCC_HSE_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;  // This assumes the HSE_VALUE is a multiple of 1 MHz. If this is not  // your case, you have to recompute these PLL constants.  RCC_OscInitStruct.PLL.PLLM = (HSE_VALUE/1000000u);#else  // Use HSI and activate PLL with HSI as source.  // This is tuned for NUCLEO-F411; update it for your board.  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;  RCC_OscInitStruct.HSIState = RCC_HSI_ON;  // 16 is the average calibration value, adjust for your own board.  RCC_OscInitStruct.HSICalibrationValue = 16;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;  // This assumes the HSI_VALUE is a multiple of 1 MHz. If this is not  // your case, you have to recompute these PLL constants.  RCC_OscInitStruct.PLL.PLLM = (HSI_VALUE/1000000u);#endif  RCC_OscInitStruct.PLL.PLLN = 336;#if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F411xE)  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; /* 84 MHz */#elif defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; /* 168 MHz */#elif defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; /* 168 MHz */#elif defined(STM32F446xx)  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; /* 168 MHz */#else  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; /* 84 MHz, conservative */#endif  RCC_OscInitStruct.PLL.PLLQ = 7; /* To make USB work. */  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  HAL_RCC_OscConfig(&RCC_OscInitStruct);  RCC_ClkInitTypeDef RCC_ClkInitStruct;  // Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2  // clocks dividers  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK      | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;#if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F411xE)  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);#else  // This is expected to work for most large cores.  // Check and update it for your own configuration.  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);#endif  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);}
开发者ID:legath,项目名称:uberdashboard-src,代码行数:70,


示例18: SystemClock_Config

  /**  * @brief  System Clock Configuration  *         The system Clock is configured as follow :  *            System Clock source            = PLL (HSE or HSI)  *            SYSCLK(Hz)                     = XPLL  *            HCLK(Hz)                       = XPLL  *            AHB Prescaler                  = 1  *            APB1 Prescaler                 = 4  *            APB2 Prescaler                 = 2  *            HSE Frequency(Hz)              = XHSI  *            PLL_M                          = 8  *            PLL_N                          = XPLL * 2  *            PLL_P                          = 2  *            PLL_Q                          = 7  *            PLL_R                          = 6  *            VDD(V)                         = 3.3  *            Main regulator output voltage  = Scale1 mode  *            Flash Latency(WS)              = 7  * @param  None  * @retval None  */static void SystemClock_Config(unsigned long int_osc_freq, unsigned long ext_osc_freq, unsigned long core_freq){  RCC_ClkInitTypeDef RCC_ClkInitStruct;  memset(&RCC_ClkInitStruct, 0, sizeof(RCC_ClkInitTypeDef));  RCC_OscInitTypeDef RCC_OscInitStruct;  memset(&RCC_OscInitStruct, 0, sizeof(RCC_OscInitTypeDef));  HAL_StatusTypeDef ret = HAL_OK;  /* Enable Power Control clock */	__HAL_RCC_PWR_CLK_ENABLE();  /* The voltage scaling allows optimizing the power consumption when the device is     clocked below the maximum system frequency, to update the voltage scaling value     regarding system frequency refer to product datasheet.  */	__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);  /* Enable HSE Oscillator and activate PLL with HSE as source */	if(EXTERNAL_CLOCK_VALUE == 0)	{		if(ext_osc_freq == 0)		{			RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;			RCC_OscInitStruct.HSIState = RCC_HSI_ON;			RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;			RCC_OscInitStruct.PLL.PLLM = int_osc_freq /1000000;		}		else		{			RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;			RCC_OscInitStruct.HSEState = RCC_HSE_ON;			RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;#if defined(USE_STM32469I_DISCO_REVA)			RCC_OscInitStruct.PLL.PLLM = 25;#else			RCC_OscInitStruct.PLL.PLLM = ext_osc_freq /1000000;#endif /* USE_STM32469I_DISCO_REVA */		}	}	else	{		RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;		RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;		RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;		RCC_OscInitStruct.PLL.PLLM = EXTERNAL_CLOCK_VALUE /1000000;	}  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLN = (core_freq * 2) / 1000000;  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;  RCC_OscInitStruct.PLL.PLLQ = 9;  RCC_OscInitStruct.PLL.PLLR = 7;  ret = HAL_RCC_OscConfig(&RCC_OscInitStruct);  if(ret != HAL_OK)  {    while(1) { ; }  }//#if defined(STM32F469xx) || defined(STM32F479xx)  /* Activate the OverDrive to reach the 180 MHz Frequency */  ret = HAL_PWREx_EnableOverDrive();  if(ret != HAL_OK)  {    while(1) { ; }  }//#endif  /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;  ret = HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7);  if(ret != HAL_OK)  {    while(1) { ; }  }  PLL_REF_CLK =	RCC_OscInitStruct.PLL.PLLM * 1000000;//.........这里部分代码省略.........
开发者ID:MorgothCreator,项目名称:mSdk,代码行数:101,


示例19: TM_RCC_InitSystem

TM_RCC_Result_t TM_RCC_InitSystem(void) {	RCC_ClkInitTypeDef RCC_ClkInitStruct;	RCC_OscInitTypeDef RCC_OscInitStruct;#if defined(STM32F7xx)	/* Invalidate I-Cache : ICIALLU register */	SCB_InvalidateICache();	/* Enable branch prediction */	SCB->CCR |= (1 <<18);	__DSB();	/* Enable I-Cache */	SCB_EnableICache();	/* Invalidate I-Cache */	SCB_InvalidateDCache();		/* Enable D-Cache */	SCB_EnableDCache();#endif		/* Enable Power Control clock */	__HAL_RCC_PWR_CLK_ENABLE();#if !defined(STM32F0xx)	/* Set voltage scaling */	__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);#endif		/* Enable HSE Oscillator and activate PLL with HSE as source */	RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE;		/* Select proper PLL input clock */	if (RCC_OSCILLATORTYPE == RCC_OSCILLATORTYPE_HSE) {			RCC_OscInitStruct.HSEState = RCC_HSE_ON;		RCC_OscInitStruct.HSIState = RCC_HSI_OFF;		RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;#if defined(STM32F0xx)		RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1;		RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;#endif	} else {		RCC_OscInitStruct.HSEState = RCC_HSE_OFF;		RCC_OscInitStruct.HSIState = RCC_HSI_ON;		RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;#if defined(STM32F0xx)		RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1;		RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;#endif	}		/* Set PLL parameters */	RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;	#if !defined(STM32F0xx)	RCC_OscInitStruct.PLL.PLLM = RCC_PLLM;	RCC_OscInitStruct.PLL.PLLN = RCC_PLLN;	RCC_OscInitStruct.PLL.PLLP = RCC_PLLP;	RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ;#endif	#if defined(STM32F446xx)#if defined(RCC_PLLR)	RCC_OscInitStruct.PLL.PLLR = RCC_PLLR;#else	RCC_OscInitStruct.PLL.PLLR = 7;#endif#endif		/* Try to init */	if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {		return TM_RCC_Result_Error;	}#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F446xx) || defined(STM32F7xx)	/* Activate the Over-Drive mode */	HAL_PWREx_EnableOverDrive();#endif	/* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */	RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;	RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;	RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1);#if !defined(STM32F0xx)	RCC_ClkInitStruct.ClockType |= RCC_CLOCKTYPE_PCLK2;#endif	#if defined(STM32F405xx) || /	defined(STM32F415xx) || /	defined(STM32F407xx) || /	defined(STM32F417xx) || /	defined(STM32F427xx) || /	defined(STM32F437xx) || /	defined(STM32F429xx) || /	defined(STM32F439xx) || /	defined(STM32F446xx) || /	defined(STM32F7xx) 		RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  //.........这里部分代码省略.........
开发者ID:cjackie,项目名称:Quadcopter-Flight-Controller,代码行数:101,


示例20: HAL_InitTick

/**  * @brief  This function configures the RTC_WKUP as a time base source.   *         The time source is configured  to have 1ms time base with a dedicated   *         Tick interrupt priority.   *         Wakeup Time base = ((RTC_ASYNCH_PREDIV + 1) * (RTC_SYNCH_PREDIV + 1)) / RTC_CLOCK                              = 1ms  *         Wakeup Time = WakeupTimebase * WakeUpCounter (0 + 1)                         = 1 ms  * @note   This function is called  automatically at the beginning of program after  *         reset by HAL_Init() or at any time when clock is configured, by HAL_RCC_ClockConfig().   * @param  TickPriority: Tick interrupt priority.  * @retval HAL status  */HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority){  __IO uint32_t counter = 0U;  RCC_OscInitTypeDef        RCC_OscInitStruct;  RCC_PeriphCLKInitTypeDef  PeriphClkInitStruct;#ifdef RTC_CLOCK_SOURCE_LSE  /* Configue LSE as RTC clock soucre */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;  RCC_OscInitStruct.LSEState = RCC_LSE_ON;  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;#elif defined (RTC_CLOCK_SOURCE_LSI)  /* Configue LSI as RTC clock soucre */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;  RCC_OscInitStruct.LSIState = RCC_LSI_ON;  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;#elif defined (RTC_CLOCK_SOURCE_HSE)  /* Configue HSE as RTC clock soucre */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;  RCC_OscInitStruct.HSEState = RCC_HSE_ON;  /* Ensure that RTC is clocked by 1MHz */  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_1MHZ;#else#error Please select the RTC Clock source#endif /* RTC_CLOCK_SOURCE_LSE */  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK)  {     PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;    if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) == HAL_OK)    {      /* Enable RTC Clock */      __HAL_RCC_RTC_ENABLE();      /* The time base should be 1ms          Time base = ((RTC_ASYNCH_PREDIV + 1) * (RTC_SYNCH_PREDIV + 1)) / RTC_CLOCK          HSE as RTC clock            Time base = ((99 + 1) * (9 + 1)) / 1Mhz                     = 1ms         LSE as RTC clock            Time base = ((31 + 1) * (0 + 1)) / 32.768Khz                     = ~1ms         LSI as RTC clock            Time base = ((31 + 1) * (0 + 1)) / 32Khz                     = 1ms      */      hRTC_Handle.Instance = RTC;      hRTC_Handle.Init.HourFormat = RTC_HOURFORMAT_24;      hRTC_Handle.Init.AsynchPrediv = RTC_ASYNCH_PREDIV;      hRTC_Handle.Init.SynchPrediv = RTC_SYNCH_PREDIV;      hRTC_Handle.Init.OutPut = RTC_OUTPUT_DISABLE;      hRTC_Handle.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;      hRTC_Handle.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;      HAL_RTC_Init(&hRTC_Handle);      /* Disable the write protection for RTC registers */      __HAL_RTC_WRITEPROTECTION_DISABLE(&hRTC_Handle);      /* Disable the Wake-up Timer */      __HAL_RTC_WAKEUPTIMER_DISABLE(&hRTC_Handle);      /* In case of interrupt mode is used, the interrupt source must disabled */       __HAL_RTC_WAKEUPTIMER_DISABLE_IT(&hRTC_Handle,RTC_IT_WUT);      /* Wait till RTC WUTWF flag is set  */      while(__HAL_RTC_WAKEUPTIMER_GET_FLAG(&hRTC_Handle, RTC_FLAG_WUTWF) == RESET)      {        if(counter++ == (SystemCoreClock /48U))         {          return HAL_ERROR;        }      }      /* Clear PWR wake up Flag */      __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);      /* Clear RTC Wake Up timer Flag */      __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(&hRTC_Handle, RTC_FLAG_WUTF);      /* Configure the Wake-up Timer counter */      hRTC_Handle.Instance->WUTR = (uint32_t)0U;      /* Clear the Wake-up Timer clock source bits in CR register */      hRTC_Handle.Instance->CR &= (uint32_t)~RTC_CR_WUCKSEL;//.........这里部分代码省略.........
开发者ID:zxtxin,项目名称:oscilloscope_chars,代码行数:101,


示例21: main

/**  * @brief  Main program  * @param  None  * @retval None  */int main(void){  /* STM32F4xx HAL library initialization:       - Configure the Flash prefetch, instruction and Data caches       - Configure the Systick to generate an interrupt each 1 msec       - Set NVIC Group Priority to 4       - Global MSP (MCU Support Package) initialization     */  HAL_Init();  /* Configure LED3 and LED4 */  BSP_LED_Init(LED3);  BSP_LED_Init(LED4);    /* Initialize User button, will be used to trigger an interrupt each time it's pressed.    In the ISR the PLL source will be changed from HSE to HSI, and vice versa. */  BSP_PB_Init(BUTTON_KEY, BUTTON_MODE_EXTI);      /* Enable Power Control clock */  __HAL_RCC_PWR_CLK_ENABLE();  /* The voltage scaling allows optimizing the power consumption when the device is      clocked below the maximum system frequency, to update the voltage scaling value      regarding system frequency refer to product datasheet.  */  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);  /* Enable HSE oscillator and configure the PLL to reach the max system frequency (180MHz)     when using HSE oscillator as PLL clock source. */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.HSEState = RCC_HSE_ON;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;  RCC_OscInitStruct.PLL.PLLM = 8;  RCC_OscInitStruct.PLL.PLLN = 360;  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;  RCC_OscInitStruct.PLL.PLLQ = 7;  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }  /* Activate the Over Drive feature (available only for STM32F42xxx/43xxx devices)*/  if(HAL_PWREx_EnableOverDrive() != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }  /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers.     The SysTick 1 msec interrupt is required for the HAL process (Timeout management); by default     the configuration is done using the HAL_Init() API, and when the system clock configuration     is updated the SysTick configuration will be adjusted by the HAL_RCC_ClockConfig() API. */  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;  if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }    /* Output SYSCLK divided by 2 on MCO2 pin(PC9) */   HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_SYSCLK, RCC_MCODIV_2);    /* Toggle LED3 and LED4 in an infinite loop */    while (1)  {    /* Toggle LED3 */    BSP_LED_Toggle(LED3);    HAL_Delay(1000);    /* Toggle LED4 */    BSP_LED_Toggle(LED4);    HAL_Delay(100);  }}
开发者ID:451506709,项目名称:automated_machine,代码行数:83,


示例22: main

/**  * @brief  Main program  * @param  None  * @retval int  */int main(void){  RCC_ClkInitTypeDef RCC_ClkInitStruct;  RCC_OscInitTypeDef RCC_OscInitStruct;  uint32_t FLatency;  SystemSettingsTypeDef setting;      osTimerId lcd_timer;      /* STM32F4xx HAL library initialization:       - Configure the Flash prefetch, instruction and Data caches       - Configure the Systick to generate an interrupt each 1 msec       - Set NVIC Group Priority to 4       - Global MSP (MCU Support Package) initialization  */  HAL_Init();   /* Configure the system clock to 168 MHz */  SystemClock_Config();    /* Initialize Joystick, Touch screen and LEDs */  k_BspInit();  k_LogInit();     /* Initialize memory pools */  k_MemInit();      /* Initialize audio Interface */  k_BspAudioInit();      /* Initialize RTC */  k_CalendarBkupInit();    /* Add Modules */  k_ModuleInit();      /* Create GUI task */  osThreadDef(GUI_Thread, GUIThread, osPriorityHigh, 0, 2048);  osThreadCreate (osThread(GUI_Thread), NULL);     k_ModuleAdd(&video_player);  k_ModuleOpenLink(&video_player, "emf");  k_ModuleOpenLink(&video_player, "EMF");  k_ModuleAdd(&image_browser);    k_ModuleOpenLink(&image_browser, "jpg");   k_ModuleOpenLink(&image_browser, "JPG");  k_ModuleOpenLink(&image_browser, "bmp");   k_ModuleOpenLink(&image_browser, "BMP");  k_ModuleAdd(&audio_player);    k_ModuleOpenLink(&audio_player, "wav");   k_ModuleOpenLink(&audio_player, "WAV");   k_ModuleAdd(&camera_capture);      k_ModuleAdd(&system_info);  k_ModuleAdd(&file_browser);    k_ModuleAdd(&cpu_bench);    k_ModuleAdd(&game_board);    k_ModuleAdd(&usb_device);       /* Initialize GUI */  GUI_Init();  WM_MULTIBUF_Enable(1);      /* Set General Graphical proprieties */  k_SetGuiProfile();    /* Get General settings */  setting.d32 = k_BkupRestoreParameter(CALIBRATION_GENERAL_SETTINGS_BKP);      if(setting.b.use_180Mhz)  {    HAL_RCC_GetClockConfig(&RCC_ClkInitStruct, &FLatency);    /* Select HSE as system clock source */    RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK);    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE;    HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1);    HAL_RCC_GetOscConfig(&RCC_OscInitStruct);      RCC_OscInitStruct.PLL.PLLM = 25;    RCC_OscInitStruct.PLL.PLLN = 360;    RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;    RCC_OscInitStruct.PLL.PLLQ = 7;    HAL_RCC_OscConfig(&RCC_OscInitStruct);        HAL_PWREx_EnableOverDrive();        /* Select PLL as system clock source */    RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK);    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;    HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);  }      /* Create Touch screen Timer */  osTimerDef(TS_Timer, TimerCallback);  lcd_timer =  osTimerCreate(osTimer(TS_Timer), osTimerPeriodic, (void *)0);  /* Start the TS Timer *///.........这里部分代码省略.........
开发者ID:PaxInstruments,项目名称:STM32CubeF4,代码行数:101,


示例23: SystemClock_Config

/**  * @brief  System Clock Configuration  *         The system Clock is configured as follow :  *            System Clock source            = PLL (HSE)  *            SYSCLK(Hz)                     = 180000000  *            HCLK(Hz)                       = 180000000  *            AHB Prescaler                  = 1  *            APB1 Prescaler                 = 4  *            APB2 Prescaler                 = 2  *            HSE Frequency(Hz)              = 8000000  *            PLL_M                          = 8  *            PLL_N                          = 360  *            PLL_P                          = 2  *            PLL_Q                          = 7  *            PLL_R                          = 2  *            VDD(V)                         = 3.3  *            Main regulator output voltage  = Scale1 mode  *            Flash Latency(WS)              = 5  *         The USB clock configuration from Main PLL:  *            PLLQ                           = 7  * @param  None  * @retval None  */void SystemClock_Config(void){  RCC_ClkInitTypeDef RCC_ClkInitStruct;  RCC_OscInitTypeDef RCC_OscInitStruct;  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;  HAL_StatusTypeDef ret = HAL_OK;  /* Enable Power Control clock */  __HAL_RCC_PWR_CLK_ENABLE();  /* The voltage scaling allows optimizing the power consumption when the device is     clocked below the maximum system frequency, to update the voltage scaling value     regarding system frequency refer to product datasheet.  */  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);  /* Enable HSE Oscillator and activate PLL with HSE as source */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.HSEState = RCC_HSE_ON;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;  RCC_OscInitStruct.PLL.PLLM = 8;  RCC_OscInitStruct.PLL.PLLN = 360;  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;  RCC_OscInitStruct.PLL.PLLQ = 7;  RCC_OscInitStruct.PLL.PLLR = 2;  ret = HAL_RCC_OscConfig(&RCC_OscInitStruct);  if(ret != HAL_OK)  {    Error_Handler();  }  /* activate the OverDrive to reach the 180 Mhz Frequency */  ret = HAL_PWREx_EnableOverDrive();  if(ret != HAL_OK)  {    Error_Handler();  }  /* Select PLLSAI output as USB clock source */  PeriphClkInitStruct.PLLSAI.PLLSAIM = 8;  PeriphClkInitStruct.PLLSAI.PLLSAIN = 384;  PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV8;  PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_CK48;  PeriphClkInitStruct.Clk48ClockSelection = RCC_CK48CLKSOURCE_PLLSAIP;  ret = HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);  if(ret != HAL_OK)  {    Error_Handler();  }  /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2     clocks dividers */  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;  ret = HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);  if(ret != HAL_OK)  {    Error_Handler();  }}
开发者ID:Joe-Merten,项目名称:Stm32-Tools-Evaluation,代码行数:86,


示例24: rtc_init

void rtc_init(void){    RCC_OscInitTypeDef RCC_OscInitStruct;    uint32_t rtc_freq = 0;#if DEVICE_RTC_LSI    if (rtc_inited) return;    rtc_inited = 1;#endif    RtcHandle.Instance = RTC;#if !DEVICE_RTC_LSI    // Enable LSE Oscillator    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE;    RCC_OscInitStruct.PLL.PLLState   = RCC_PLL_NONE; // Mandatory, otherwise the PLL is reconfigured!    RCC_OscInitStruct.LSEState       = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT    RCC_OscInitStruct.LSIState       = RCC_LSI_OFF;    if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) { // Check if LSE has started correctly        // Connect LSE to RTC        __HAL_RCC_RTC_CLKPRESCALER(RCC_RTCCLKSOURCE_LSE);        __HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE);        rtc_freq = LSE_VALUE;    } else {	    error("Cannot initialize RTC with LSE/n");    }#else	    // Enable Power clock    __PWR_CLK_ENABLE();    // Enable access to Backup domain    HAL_PWR_EnableBkUpAccess();    // Reset Backup domain    __HAL_RCC_BACKUPRESET_FORCE();    __HAL_RCC_BACKUPRESET_RELEASE();	// Enable LSI clock	RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE;	RCC_OscInitStruct.PLL.PLLState   = RCC_PLL_NONE; // Mandatory, otherwise the PLL is reconfigured!	RCC_OscInitStruct.LSEState       = RCC_LSE_OFF;	RCC_OscInitStruct.LSIState       = RCC_LSI_ON;	if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {		error("Cannot initialize RTC with LSI/n");	}	// Connect LSI to RTC    __HAL_RCC_RTC_CLKPRESCALER(RCC_RTCCLKSOURCE_LSI);    __HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSI);	// This value is LSI typical value. To be measured precisely using a timer input capture for example.	rtc_freq = 40000;#endif    // Enable RTC    __HAL_RCC_RTC_ENABLE();    RtcHandle.Init.HourFormat     = RTC_HOURFORMAT_24;#ifdef TARGET_MOTE_L152RC    /* SubSecond resolution of 16384Hz */    RtcHandle.Init.AsynchPrediv   = 1;    RtcHandle.Init.SynchPrediv    = (rtc_freq / 2) - 1;#else    RtcHandle.Init.AsynchPrediv   = 127;    RtcHandle.Init.SynchPrediv    = (rtc_freq / 128) - 1;#endif    RtcHandle.Init.OutPut         = RTC_OUTPUT_DISABLE;    RtcHandle.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;    RtcHandle.Init.OutPutType     = RTC_OUTPUT_TYPE_OPENDRAIN;    if (HAL_RTC_Init(&RtcHandle) != HAL_OK) {        error("RTC error: RTC initialization failed.");    }}
开发者ID:Josnaky,项目名称:mbed,代码行数:72,


示例25: HAL_InitTick

/**  * @brief  This function configures the RTC_ALARMA as a time base source.  *         The time source is configured  to have 1ms time base with a dedicated  *         Tick interrupt priority.  * @note   This function is called  automatically at the beginning of program after  *         reset by HAL_Init() or at any time when clock is configured, by HAL_RCC_ClockConfig().  * @param  TickPriority: Tick interrupt priority.  * @retval HAL status  */HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority){  __IO uint32_t counter = 0U;  RCC_OscInitTypeDef        RCC_OscInitStruct;  RCC_PeriphCLKInitTypeDef  PeriphClkInitStruct;#ifdef RTC_CLOCK_SOURCE_LSE  /* Configue LSE as RTC clock soucre */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;  RCC_OscInitStruct.LSEState = RCC_LSE_ON;  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;#elif defined (RTC_CLOCK_SOURCE_LSI)  /* Configue LSI as RTC clock soucre */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;  RCC_OscInitStruct.LSIState = RCC_LSI_ON;  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;#elif defined (RTC_CLOCK_SOURCE_HSE)  /* Configue HSE as RTC clock soucre */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;  RCC_OscInitStruct.HSEState = RCC_HSE_ON;  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_HSE_DIV32;#else#error Please select the RTC Clock source#endif /* RTC_CLOCK_SOURCE_LSE */  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK)  {    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;    if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) == HAL_OK)    {      /* Enable RTC Clock */      __HAL_RCC_RTC_ENABLE();      __HAL_RCC_RTCAPB_CLK_ENABLE();      /* The time base should be 1ms         Time base = ((RTC_ASYNCH_PREDIV + 1) * (RTC_SYNCH_PREDIV + 1)) / RTC_CLOCK         HSE as RTC clock           Time base = ((49 + 1) * (4 + 1)) / 250kHz                     = 1ms         LSE as RTC clock           Time base = ((31 + 1) * (0 + 1)) / 32.768KHz                     = ~1ms         LSI as RTC clock           Time base = ((31 + 1) * (0 + 1)) / 32KHz                     = 1ms      */      hRTC_Handle.Instance = RTC;      hRTC_Handle.Init.HourFormat = RTC_HOURFORMAT_24;      hRTC_Handle.Init.AsynchPrediv = RTC_ASYNCH_PREDIV;      hRTC_Handle.Init.SynchPrediv = RTC_SYNCH_PREDIV;      hRTC_Handle.Init.OutPut = RTC_OUTPUT_DISABLE;      hRTC_Handle.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;      hRTC_Handle.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;      if (HAL_RTC_Init(&hRTC_Handle) != HAL_OK)      {        return HAL_ERROR;      }      /* Disable the write protection for RTC registers */      __HAL_RTC_WRITEPROTECTION_DISABLE(&hRTC_Handle);      /* Disable the Alarm A interrupt */      __HAL_RTC_ALARMA_DISABLE(&hRTC_Handle);      /* Clear flag alarm A */      __HAL_RTC_ALARM_CLEAR_FLAG(&hRTC_Handle, RTC_FLAG_ALRAF);      counter = 0U;      /* Wait till RTC ALRAWF flag is set and if Time out is reached exit */      while(__HAL_RTC_ALARM_GET_FLAG(&hRTC_Handle, RTC_FLAG_ALRAWF) == 0U)      {        if(counter++ == (SystemCoreClock / 56U)) /* Timeout = ~ 1s */        {          return HAL_ERROR;        }      }      hRTC_Handle.Instance->ALRMAR = (uint32_t)0x01U;      /* Configure the Alarm state: Enable Alarm */      __HAL_RTC_ALARMA_ENABLE(&hRTC_Handle);      /* Configure the Alarm interrupt */      __HAL_RTC_ALARM_ENABLE_IT(&hRTC_Handle, RTC_IT_ALRA);      /* RTC Alarm Interrupt Configuration: EXTI configuration */      __HAL_RTC_ALARM_EXTI_ENABLE_IT();//.........这里部分代码省略.........
开发者ID:heyuanjie87,项目名称:rt-thread,代码行数:101,


示例26: SetSysClock_PLL_HSE

uint8_t SetSysClock_PLL_HSE(uint8_t bypass){    RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};    RCC_OscInitTypeDef RCC_OscInitStruct = {0};    RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};    __HAL_RCC_SYSCFG_CLK_ENABLE(); // Mandatory for I/O Compensation Cell    MODIFY_REG(PWR->CR3, PWR_CR3_SCUEN, 0);    /*!< Supply configuration update enable */    // HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);    /* The voltage scaling allows optimizing the power consumption when the device is    clocked below the maximum system frequency, to update the voltage scaling value    regarding system frequency refer to product datasheet.  */    __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);    while (!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}    // NEEDED ???    /* Select CSI as system clock source to allow modification of the PLL configuration */    //RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;    //RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_CSI;    //if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) {    //    return 0; // FAIL    //}    /* Enable HSE Oscillator and activate PLL with HSE as source */    //RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI48;    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI48;    if (bypass) {        RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;    } else {        RCC_OscInitStruct.HSEState = RCC_HSE_ON;    }    RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;    RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;    RCC_OscInitStruct.PLL.PLLM = 4;   // 2 MHz    RCC_OscInitStruct.PLL.PLLN = 400; // 800 MHz    RCC_OscInitStruct.PLL.PLLP = 2;   // PLLCLK = SYSCLK = 400 MHz    RCC_OscInitStruct.PLL.PLLQ = 80;  // PLL1Q used for FDCAN = 10 MHz    RCC_OscInitStruct.PLL.PLLR = 2;    RCC_OscInitStruct.PLL.PLLFRACN = 0;    RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;    RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_1;    if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {        return 0; // FAIL    }    /* Select PLL as system clock source and configure bus clocks dividers */    RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK |                                  RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2 |                                  RCC_CLOCKTYPE_D1PCLK1 | RCC_CLOCKTYPE_D3PCLK1;    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;    RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;    RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV2;    RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;    RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;    RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV2;    RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;    if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) {        return 0; // FAIL    }    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3 | RCC_PERIPHCLK_USB;    PeriphClkInitStruct.Usart234578ClockSelection = RCC_USART234578CLKSOURCE_D2PCLK1;    PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_HSI48;    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) {        return 0; // FAIL    }    /* Disable CSI Oscillator */    //RCC_OscInitStruct.OscillatorType  = RCC_OSCILLATORTYPE_CSI;    //RCC_OscInitStruct.CSIState        = RCC_CSI_OFF;    //RCC_OscInitStruct.PLL.PLLState    = RCC_PLL_NONE;    //if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {    //    return 0;    //}    // NEEDED ???    /* Enables the I/O Compensation Cell */    // __HAL_RCC_CSI_ENABLE(); // Mandatory for I/O Compensation Cell    // HAL_EnableCompensationCell();    return 1; // OK}
开发者ID:toyowata,项目名称:mbed,代码行数:86,


示例27: SystemClock_Config

SystemClock_Config(void){  // Enable Power Control clock  __PWR_CLK_ENABLE();  // The voltage scaling allows optimizing the power consumption when the  // device is clocked below the maximum system frequency, to update the  // voltage scaling value regarding system frequency refer to product  // datasheet.  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);#warning "Please check if the SystemClock_Config() settings match your board!"  // Comment out the warning after checking and updating.  RCC_OscInitTypeDef RCC_OscInitStruct;#if defined(HSE_VALUE) && (HSE_VALUE != 0)  // Enable HSE Oscillator and activate PLL with HSE as source.  // This is tuned for STM32F4-DISCOVERY; update it for your board.  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  RCC_OscInitStruct.HSEState = RCC_HSE_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;  // This assumes the HSE_VALUE is a multiple of 1 MHz. If this is not  // your case, you have to recompute these PLL constants.  RCC_OscInitStruct.PLL.PLLM = (HSE_VALUE/1000000u);#else  // Use HSI and activate PLL with HSI as source.  // This is tuned for NUCLEO-F411; update it for your board.  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;  RCC_OscInitStruct.HSIState = RCC_HSI_ON;  // 16 is the average calibration value, adjust for your own board.  RCC_OscInitStruct.HSICalibrationValue = 16;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;  // This assumes the HSI_VALUE is a multiple of 1 MHz. If this is not  // your case, you have to recompute these PLL constants.  RCC_OscInitStruct.PLL.PLLM = (HSI_VALUE/1000000u);#endif  RCC_OscInitStruct.PLL.PLLN = 336;#if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F411xE)  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; /* 84 MHz */#elif defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; /* 168 MHz */#elif defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; /* 168 MHz */#elif defined(STM32F446xx)  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; /* 168 MHz */#else  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; /* 84 MHz, conservative */#endif  RCC_OscInitStruct.PLL.PLLQ = 7; /* To make USB work. */  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  HAL_RCC_OscConfig(&RCC_OscInitStruct);  RCC_ClkInitTypeDef RCC_ClkInitStruct;  // Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2  // clocks dividers  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK      | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;#if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F411xE)  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);#else  // This is expected to work for most large cores.  // Check and update it for your own configuration.  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);#endif  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);}
开发者ID:johnmoule,项目名称:plug-ins,代码行数:78,


示例28: StartThread

/**  * @brief  Start task  * @param  argument: pointer that is passed to the thread function as start argument.  * @retval None  */static void StartThread(void const * argument){  RCC_ClkInitTypeDef RCC_ClkInitStruct;  RCC_OscInitTypeDef RCC_OscInitStruct;  uint32_t FLatency;  SystemSettingsTypeDef settings;  osTimerId lcd_timer;         /* Initialize Joystick, Touch screen and LEDs */  k_BspInit();  k_LogInit();    /* Initialize GUI */  GUI_Init();  WM_MULTIBUF_Enable(1);  GUI_SelectLayer(1);    /* Initialize RTC */  k_CalendarBkupInit();    /* Get General settings */  settings.d32 = k_BkupRestoreParameter(CALIBRATION_GENERAL_SETTINGS_BKP);      if(settings.b.use_180Mhz)  {    HAL_RCC_GetClockConfig(&RCC_ClkInitStruct, &FLatency);    /* Select HSE as system clock source */    RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK);    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE;    HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1);    HAL_RCC_GetOscConfig(&RCC_OscInitStruct);      RCC_OscInitStruct.PLL.PLLM = 8;    RCC_OscInitStruct.PLL.PLLN = 360;    RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;    RCC_OscInitStruct.PLL.PLLQ = 7;    HAL_RCC_OscConfig(&RCC_OscInitStruct);        HAL_PWREx_EnableOverDrive();        /* Select PLL as system clock source */    RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK);    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;    HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);  }    k_StartUp();    /* Initialize Storage Units */  k_StorageInit();    /*Initialize memory pools */  k_MemInit();    /* Add Modules*/  k_ModuleInit();    k_ModuleAdd(&video_player);  k_ModuleOpenLink(&video_player, "emf");  k_ModuleOpenLink(&video_player, "EMF");  k_ModuleAdd(&image_browser);    k_ModuleOpenLink(&image_browser, "jpg");   k_ModuleOpenLink(&image_browser, "JPG");  k_ModuleOpenLink(&image_browser, "bmp");   k_ModuleOpenLink(&image_browser, "BMP");  k_ModuleAdd(&system_info);  k_ModuleAdd(&file_browser);  k_ModuleAdd(&cpu_bench);  k_ModuleAdd(&game_board);    /* Create GUI task */  osThreadDef(GUI_Thread, GUIThread, osPriorityHigh, 0, 15 * configMINIMAL_STACK_SIZE);  osThreadCreate (osThread(GUI_Thread), NULL);   /* Create Touch screen Timer */  osTimerDef(TS_Timer, TimerCallback);  lcd_timer =  osTimerCreate(osTimer(TS_Timer), osTimerPeriodic, (void *)0);  /* Start the TS Timer */  osTimerStart(lcd_timer, 100);    for( ;; )  {        /* Toggle LED3 and LED4 */        BSP_LED_Toggle(LED3);        BSP_LED_Toggle(LED4);            osDelay(250);  }}
开发者ID:451506709,项目名称:automated_machine,代码行数:94,



注:本文中的HAL_RCC_OscConfig函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ HAL_READ_UINT16函数代码示例
C++ HAL_RCC_GetPCLK2Freq函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。