RCC_GetClocksFreq函数的问题请教。。

[复制链接]
 楼主| hackthree 发表于 2011-6-9 08:33 | 显示全部楼层 |阅读模式
void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)
在固件库手册上描述的功能是返回不同片上时钟的频率

我的问题来了:我现在用的F100,48脚的片子,3.5.0的库,最大频率为24MHZ,
直接在RCC初始化中用SystemInit();这个函数。

想看看各时钟的频率,就用写了个下面这个函数:
void test_clock()
{
RCC_GetClocksFreq(&RCC_Clock_t);
  T_SYSCLK=RCC_Clock_t.SYSCLK_Frequency;
  T_HCLK=RCC_Clock_t.HCLK_Frequency;
  T_PCLK1=RCC_Clock_t.PCLK1_Frequency;
  T_PCLK2=RCC_Clock_t.PCLK2_Frequency;
  T_ADCCLK=RCC_Clock_t.ADCCLK_Frequency;     //测试各时钟频率
}
在KEIL中查看T_SYSCLK,T_HCLK,T_PCLK1,T_PCLK2,T_ADCCLK这几个值分别如下(十进制):
T_SYSCLK=13824
T_HCLK=13824
T_PCLK1=13824
T_PCLK2=13824
T_ADCCLK=6912

而手册上说返回值都是单位为HZ。。
这样的话,岂不是只有13.824kHz?
所以有些不解了,求解答。。。
香水城 发表于 2011-6-9 12:06 | 显示全部楼层
函数返回的数值只是寄存器设置的数值,而不是实测的数值,所以你需要先初始化好各个寄存器后再调用这个函数才有意义。
baidudz 发表于 2011-6-9 16:27 | 显示全部楼层
必须先初始化各个寄存器
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

220

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

1

主题

220

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部