把这个加到主函数,debug一下就可以看到你的系统时钟 RCC_ClocksTypeDef RCC_Clocks; RCC_GetClocksFreq(&RCC_Clocks);
void RCC_Configuration(void) { RCC_ClocksTypeDef RCC_ClockFreq; SystemInit();//源自system_stm32f10x.c文件,只需要调用此函数,则可完成RCC的配置. RCC_GetClocksFreq(&RCC_ClockFreq);//SYSTICK分频--1ms的系统时钟中断 if (SysTick_Config(SystemFrequency / 1000)) { while (1); // Capture error } ...
RCC_RTCCLKConfig 设置 RTC 时钟( RTCCLK) RCC_RTCCLKCmd 使能或者失能 RTC 时钟 RCC_GetClocksFreq 返回不同片上时钟的频率 RCC_AHBPeriphClockCmd 使能或者失能 AHB 外设时钟 RCC_APB2PeriphClockCmd 使能或者失能 APB2 外设时钟 RCC_APB1PeriphClockCmd 使能或者失能 APB1 外设时钟 RCC_APB2PeriphResetCmd 强...
RCC_ClocksTypeDef RCC_CLK;//写在main()的最前面,定义要在赋值前面RCC_GetClocksFreq(&RCC_CLK);//Get chip frequenciesprintf("System Clock Source : %d\r\n", RCC_GetSYSCLKSource());printf("APB1/PCLK1 : %dHZ\r\n", RCC_CLK.PCLK1_Frequency);printf("APB2/PCLK2 : %dHZ\r\n", RCC_CLK....
} RCC_TypeDef; 1、时钟控制寄存器(RCC_CR):(复位值为0x0000 xx83,内部低速时钟使能和就绪,内部时钟校准) 主要功能:内外部高速时钟的使能和就绪标志(含内部高速时钟校准调整),外部高速时钟旁路,时钟安全系统CSS使能,PLL使能和PLL就绪标志。 2、时钟配置寄存器(RCC_CFGR):(复位值为0x0000 0000) ...
RCC_GetClocksFreq(&clock_status_wakeup); //从停止模式下被唤醒后使用的是HSI 时钟,此处重启HSE 时钟,使用PLLCLK SYSCLKConfig_STOP(); //获取重新配置后的时钟状态 //时钟源 clock_source_config = RCC_GetSYSCLKSource (); //时钟频率 RCC_GetClocksFreq(&clock_status_config); ...
void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks);// 返回时钟的频率 //输入:指向结构RCC_ClocksTypeDef的指针,包含了各个时钟的频率(单位为Hz) void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState);// 使能或者失能AHB外设时钟 ...
RCC_GetClocksFreq(&RCC_Clocks); printf("SYSCLK_Frequency: %d\r\n",RCC_Clocks.SYSCLK_Frequency); 结果打出来的是: SYSCLK_Frequency: 8000000 事实上,正常的f1系列的主频应该为72Mhz,所以应该打印出72000000。由此判断,应该是晶振出现了毛病。于是准备开仿真调试一下,结果尴尬了,居然打印除了72000000?你说啥...
1、时钟控制寄存器(RCC_CR):(复位值为0x0000 xx83,内部低速时钟使能和就绪,内部时钟校准)主要功能...
RCC_GetClocksFreq(&rcc_clocks); // 获得APB1总线的时钟频率(36MHz) pclk1 = rcc_clocks.PCLK1_Frequency; /* Set frequency bits depending on pclk1 value */ // 计算FREQ[5:0]位写入值(36,已经是最大值) freqrange = (uint16_t)(pclk1 / 1000000); ...