分頻值是是指你將系統時鐘的頻率減小,假設時鐘頻率是72Mhz,然后分頻值是7199,現在你的定時器值就是10kHz,表示每計一個數,然后過了1/(10^4)秒,然后你的重裝值就是你的時間了,如果值是9999,就表示定時時間為1s。
TIM_TImeBaseInitTypeDef TIM_TImeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
TIM_TimeBaseStructure.TIM_Period = 9999;
TIM_TimeBaseStructure.TIM_Prescaler = 7199;
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE );
TIM_Cmd(TIM3,ENABLE);
定時器中斷為1s
定時器的定時 功能
定時器的時鐘源選擇
定時器的時鐘是來自APB1或者APB2時鐘線上的倍頻器,其最大值是APB1或者APB2時鐘的2倍頻。
計數器時鐘源選擇
計數器時鐘來源:
1)內部時鐘,即是倍頻器出來后的時鐘;
2)外部時鐘模式1,輸入引腳(TIx),通常叫做外部輸入捕獲; 3)外部時鐘模式2,外部觸發輸入(EXT); 4)其他定時器觸發;
這里說說外部時鐘模式1 和外部時鐘模式2 的區別:
從時鐘的框圖:
當選擇為外部從模式1的時候,那么觸發控制器完全被沖模式控制被占用了,這個時候就不能用其它從模式(復位、觸發、門控)進行控制,而ETR,解決了這個問題。
定時器定時時間計算原理,做定時器的定時時間時,通常是選擇內部時鐘,下面舉例來說明:
更具配置時定時器的計數模式,一般選擇為向上計數模式,計數器溢出然后,定時器自動加載計數器的值,從零開始計數,并且產生一個中斷。
分屏器:
分頻器是用來描述,計數器是經過多少分頻。
定時器時鐘 T6
選擇定時器內部時鐘作為計數器的時鐘源,這里假設為21M(F4系類可以分頻到這個頻率)
也就是1S,可以計數 21 000000個脈沖; 一個脈沖占用時間 = 1/21 000000 (s);
那么現在定時500us = 0.0005s;
其中一種組合如下: 重載值 = 500*21-1; 分頻值 = 0;