STM32 TIMER2的使用
【STM32 TIMER2的使用】配置定时100us的配置如下:
TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
TIM_DeInit(TIM2);
TIM_TimeBaseStructure.TIM_Period=1;//59999;//1199;//9999;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_Prescaler=3499;//分频35999
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);
TIM_ClearFlag(TIM2,TIM_IT_Update);
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM2,DISABLE);
//((1+TIM_Prescaler )/f_soc)*(1+TIM_Period )=((1+7199)/72M)*(1+9999)=1秒
time = ((1+3499)/72M)*(1+1) =100us :f_soc =72MHz
看STM32的时钟树可以知道 Timer的f_soc= APB1_Clk * APB1_Prescaler
APB1_Clk = AHB_Clk /APB1_Prescaler
AHB_CLk = Sysclk /AHB_Prescaler
我这里的时钟设置 Sysclk = 72MHz
AHB_Prescaler = 1 => AHB_Clk = 72MHz
因为 APB1_CLK_max = 36MHz
所以 APB1_Prescaler =2
于是 Timer2 的f_soc = 72MHz
推荐阅读
- 读写PIC16F877单片机內部EEPROM的实例
- 装修扫盲之踢脚线安装
- 家居风水须注意!最明显的四大漏财位
- 家居风景线 华丽丽的飘窗角落设计
- 如何处理冰箱积水的问题
- 木工工程家居装修的验收要点
- 地板装修 地板颜色与家具的搭配
- 装修后才知道的79件事
- 儿童房装修应“绿”字当先
- 菜鸟必看 装修DIY的10大错误盘点