/********************************************************************************************************* ** Function name : HSI_Configuration ** Input Para : ** Output Para : ** Created by : weiyuliang 魏玉良 ** Created Date : 2016年06月30日 ** Descriptions : 设置系统时钟为HSI ** ** ------------------------------------------------------------------------------------------------------- ** Modified by : ** Modified Date : ** Descriptions : ** ** ------------------------------------------------------------------------------------------------------- **********************************************************************************************************/ void HSI_Configuration(void) { //RCC reset RCC_DeInit(); //Enable HSI RCC_HSICmd(ENABLE); //wait HSI while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET); RCC_HSEConfig(RCC_HSE_OFF); if(RCC_GetFlagStatus(RCC_FLAG_HSERDY) != RESET ) { while(1); } RCC_AdjustHSICalibrationValue(16); FLASH_PrefetchBufferCmd(ENABLE); FLASH_SetLatency(FLASH_Latency_1); /* Power enable */ RCC->APB1ENR |= RCC_APB1ENR_PWREN; /* Select the Voltage Range 1 (1.8 V) */ PWR->CR = PWR_CR_VOS_1; RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI); while (RCC_GetSYSCLKSource() != 0x04) { } /* 设置AHB时钟=32 MHz */ RCC_HCLKConfig(RCC_SYSCLK_Div1); /* 设置APB1时钟=32 MHz */ RCC_PCLK1Config(RCC_SYSCLK_Div1); /* 设置APB2时钟=32 MHz */ RCC_PCLK2Config(RCC_SYSCLK_Div1); /* 8M*4/2 = 32M */ RCC_PLLConfig(RCC_PLLSource_HSI,RCC_PLLMul_4, RCC_PLLDiv_2); /* Enable PLL */ RCC_PLLCmd(ENABLE); /* Wait till PLL is ready */ while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) { } } /********************************************************************************************************* ** Function name : get_sys_clock_fre ** Input Para : ** Output Para : ** Created by : weiyuliang 魏玉良 ** Created Date : 2016年06月30日 ** Descriptions : 读取系统时钟频率 ** ** ------------------------------------------------------------------------------------------------------- ** Modified by : ** Modified Date : ** Descriptions : ** ** ------------------------------------------------------------------------------------------------------- **********************************************************************************************************/ void get_sys_clock_fre(void) { RCC_ClocksTypeDef get_rcc_clock; /* 获取系统时钟 */ RCC_GetClocksFreq(&get_rcc_clock); /* 输出 系统时钟频率 */ printf(" SYSCLK %d\n", get_rcc_clock.SYSCLK_Frequency); printf(" HCLK %d\n" , get_rcc_clock.HCLK_Frequency); printf(" PCLK1 %d\n" , get_rcc_clock.PCLK1_Frequency); printf(" PCLK2 %d\n" , get_rcc_clock.PCLK2_Frequency); }
举报
mmuuss586 发表于 2016-6-30 20:15 把相应的时钟配置寄存器值读出来,看有没有写成功
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
人才类勋章
时间类勋章
发帖类勋章
等级类勋章
3
97
0
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号