STM32F103  一段代码执行时间计算方法。——通过定时器的方法 
 
思路:打开定时器 TIMx,其中 TIMx—CNT 初始值设置为 0,运行一段代码的,关闭定
时器,(设置断点)读取关闭定时器后的 TIMx—CNT 计数器的值。此时的值乘以 CNT 的反转
周期就是以上代码的运行时间。具体设置如下: 
 
int main(void) 
{ 
       
 
#ifdef DEBUG 
              debug(); 
#endif 
 
 
 
TIM2 -> CNT=0x00;                      //定时器计数初始值设置 0; 
TIM_Cmd(TIM2, ENABLE);            //开启定时器; 
 
        for(u8 i=0;i<0x2D;i++)                  //给数组 DDK[45]赋值;(执行的一段代码) 
              { 
                    DDK[i]=i; 
              } 
         
TIM_Cmd(TIM2, DISABLE);          //关闭定时器; 
Delay(us);                                    //设置断点之处 
} 
 
Time2 配置 
void Config_TIM2(void) 
{ 
      TIM_TimeBaseInitTypeDef    TIM_TimeBaseStructure; 
        TIM_DeInit(TIM2);                                                  //系统时钟 48MHz 
 
 
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; 
TIM_TimeBaseStructure.TIM_Prescaler = 49; 
TIM_TimeBaseStructure.TIM_Period = 60000; 
// 48M/(49+1) = 1000kHz  即 1us,CNT 计数一次 
// 60000/100k = (600 ms-->10Hz)600ms 进入一次中断。 
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //CNT 向上计数方式 
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); 
TIM_ClearFlag(TIM2, TIM_FLAG_Update); 
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); 
 
 
 
 
 
 
}