STM32F30X时钟初始化为HSI 64Mhz,并使用PLLCLK作为系统时钟
来源:互联网 发布:c语言子程序调用实例 编辑:程序博客网 时间:2024/05/17 00:02
void SYSCLK_Config_HSI_64Mhz(void){__IO uint32_t StartUpCounter = 0, HSIStatus = 0;/* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*//* Enable HSI */RCC->CR |= ((uint32_t)RCC_CR_HSION);/* Wait till HSI is ready and if Time out is reached exit */do{ HSIStatus = RCC->CR & RCC_CR_HSIRDY; StartUpCounter++; } while((HSIStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));if ((RCC->CR & RCC_CR_HSIRDY) != RESET){ HSIStatus = (uint32_t)0x01;}else{ HSIStatus = (uint32_t)0x00;} if (HSIStatus == (uint32_t)0x01){ /* Enable Prefetch Buffer */ FLASH->ACR |= FLASH_ACR_PRFTBE; /* Flash 2 wait state */ FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_1; /* HCLK = SYSCLK */ RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; /* PCLK2 = HCLK */ RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; /* PCLK1 = HCLK */ RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; /* Clear PLL Source [16] and Multiplier [21:18] bits */ RCC->CFGR &= ~(RCC_CFGR_PLLMULL | RCC_CFGR_PLLSRC); /* PLL configuration: PLLCLK = HSI / 2 * 16 = 64 MHz */ RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSI_Div2 | RCC_CFGR_PLLMULL16); /* Enable PLL */ RCC->CR |= RCC_CR_PLLON; /* Wait till PLL is ready */ while((RCC->CR & RCC_CR_PLLRDY) == 0) { } /* Select PLL as system clock source */ RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; /* Wait till PLL is used as system clock source */ while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) { }}else{ /* If HSE fails to start-up, the application will have wrong clock configuration. User can add here some code to deal with this error */}}
来自:http://blog.csdn.net/lan120576664?viewmode=contents
0 0
- STM32F30X时钟初始化为HSI 64Mhz,并使用PLLCLK作为系统时钟
- STM32F103 使用HSI配置系统时钟为64MHZ
- 学习下stm32 配置 HSI作为系统时钟,但意义不大,一般不这样做!
- 【程序】STM32L476RG单片机用寄存器通过PLL将MSI时钟倍频到72MHz并设为系统时钟
- STM32F0的UART选择HSI作为时钟源
- STM32系统学习——RCC(使用HSE/HSI配置时钟)
- stm32F051 HSI 时钟作为主时钟
- 8.3 使用计时器作为时钟
- 8.3 使用计时器作为时钟
- 不用晶振,STM32内部HSI时钟的倍频使用
- 为何GSM时钟26MHz,CDMA时钟是19.2MHz?
- STM32 时钟 配置 16MHZ
- CC2541设置外部时钟为32Mhz
- 系统时钟
- 时钟系统
- 时钟系统
- 系统时钟
- 系统时钟
- ansi码文本文件转换成utf-8文本文件
- json学习初体验--使用第三方的jar包实现bean、List、map创建json格式
- SqlServer默认端口1433未开放导致java.sql.SQLException: Network error IOException: Connection refused: connect
- Spring MVC学习之三:处理方法返回值的可选类型
- ios性能到底为什么优于android?
- STM32F30X时钟初始化为HSI 64Mhz,并使用PLLCLK作为系统时钟
- Zend Framework2 问题手札
- NSUserDefaults的使用
- 【巧妙预处理系列+离散化处理】【uva1382】Distant Galaxy
- 们控制的事
- MySQL与Oracle的语法区别详细对比
- ubuntu12.04安装opencv-2.4.9
- C++ 标准库 vector list map使用方法
- Xcopy参数介绍