STM32 TIM 定時時間的計算

2021-07-29 14:33:03 字數 1157 閱讀 1665

假設 系統時鐘是72mhz,tim1 是由pclk2 (72mhz)得到,tim2-7是由 pclk1 得到

關鍵是設定 時鐘預分頻數,自動重裝載暫存器週期的值

/*每1秒發生一次更新事件(進入中斷服務程式)。rcc_configuration()的systeminit()的

rcc->cfgr |= (uint32_t)rcc_cfgr_ppre1_div2表明tim3clk為72mhz。因此,每次進入中

斷服務程式間隔時間為

((1+tim_prescaler )/72m)*(1+tim_period )=((1+7199)/72m)*(1+9999)=1秒 */

定時器的基本設定

1、   tim_timebasestructure.tim_prescaler = 7199;//時鐘預分頻數   例如 :時

鐘頻率=72/(時鐘預分頻+1)  

2、tim_timebasestructure.tim_period = 9999; // 自動重裝載暫存器週期的值(定時

時間)     累計 0xffff個頻率後產生個更新或者中斷(也是說定時時間到)

3、  tim_timebasestructure.tim_countermode =  tim1_countermode_up; //定時器

模式  向上計數  

4、 tim_timebasestructure.tim_clockdivision = 0x0; //時間分割值  

5、 tim_timebaseinit(tim2, &tim_timebasestructure);//初始化定時器2

6、 tim_itconfig(tim2, tim_it_update, enable);  //開啟中斷   溢位中斷  

7、 tim_cmd(tim2, enable);//開啟定時器

或者:

tim_timebasestructure.tim_prescaler = 35999;//分頻35999      72m/

(35999+1)/2=1hz  1秒中斷溢位一次

tim_timebasestructure.tim_period = 2000; //計數值2000 

((1+tim_prescaler )/72m)*(1+tim_period )=((1+35999)/72m)*(1+2000)=1秒 */  

STM32 TIM定時 中斷

今天講解stm32f103定時器定時 中斷功能,在昨天定時器延時的軟體工程上新增tim3定時的功能,自己也可以試著將昨天的工程新增修改得到。訪問密碼 acd8 工程現象 間隔 定時器定時 500ms led變化一次,並且串列埠列印 stm32f103ze有8個定時器 tim1 tim8 改工程以ti...

STM32 TIM延時講解

今天講解stm32f103定時器延時功能,tim的功能很強大,後續慢慢講解。今天從簡單開始講解定時器,以下面軟體工程例項來講述。訪問密碼 6f12 工程現象 間隔 定時器延時 500ms led變化一次,並且串列埠列印 stm32f103ze有8個定時器 tim1 tim8 這裡工程使用tim4為例...

STM32 TIM觸發ADC 定時取樣 筆記

用tim3的update觸發adc,只需勾選internal clock就可以了 adc設定,關鍵是選tim3 trigger out,圖中continuous coversion mode 應該選disable tim3 設定時間間隔然後關鍵選update event 程式 記得開啟tim3 ha...