晶振的理解:
9M晶振就是1秒可以振动9 * 106次,所以每一次振动的时间为1/9 * 106秒
要计算1ms,就振动9 * 103次,就是9000次
要计算1us,就振动9 * 100次,就是9次
这样一来,对于常用的STM32F103ZET6芯片72MHz的时钟,就能照葫芦画瓢知道定时时间
72MHz = 72 * 106 Hz, 即晶振振动 72 * 106 次就计时1s
72 * 103,即晶振振动72 * 103次就定时1ms
72* 100,即晶振振动72次就定时1us
定时时间的计算
这些晶振振动次数与时间的关系对使用定时器定时想要的时间特别有帮助
TIM3_Int_Init(4999,7199);//10Khz的计数频率,计数到5000为500ms
如这里的定时器3初始化,参数1是重装载值arr,参数2是时钟分频系数psc
psc = 7199,7199+1 = 7200,就表示晶振振动7200次,已经知道72 * 103 次是1ms,那7200次就是定时0.1ms,而0.1ms = 0.0001s,时间的倒数就是频率,所以1/0.0001s = 10000 = 10khz
既然知道经过分频后定时为0.1ms,所以重装载值arr+1 = 4999+1 = 5000,5000 * 0.1ms = 500ms