昨天仿真中突然发现 Peripheral -> Power,reset and Clock control 中系统时钟竟然是108M,吓我一跳!
因为, 这么长时间一直都是按照72M来用的,难道一直都用错了??下面来细细道来
1.
我 们发现高速外部时钟HSE是12M,这和精英板上的8M不符啊,那么这个12M又是怎么来的??
原理图上确确实实是8M,但发现在Target 中的Xtal 是12M
修改此处为8M后,系统时钟正常。那这么重要的参数,怎么大家好像都不怎么关注??
原来此处的Xtal 设置的在软件仿真时用到的时钟频率
- 那么又怎么知道运行中真正的时钟频率呢?
调用库函数 RCC_GetClocksFreq()该函数可返回片上各种时钟频率。结构体RCC_ClocksTypeDef 中包括了片上各时钟频率
函数原型
void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)
typedef struct
{
uint32_t SYS