1、初始化1个定时器
TIM5_Init(-1,108-1);//arr为最大值(unsigned int)-1,让其一直往上加,最大值42亿us,即最大可表示4200秒,分频系数psc为108,即每+1等于1us
void TIM5_Init(u32 arr,u16 psc)
{
TIM5_Handler.Instance=TIM5; //通用定时器5
TIM5_Handler.Init.Prescaler=psc; //分频 //可设置范围为0至65535,实现1至65536分频 此处psc+1分频
TIM5_Handler.Init.CounterMode=TIM_COUNTERMODE_UP; //向上计数器
TIM5_Handler.Init.Period=arr; //自动装载值
TIM5_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1; //时钟分频因子
HAL_TIM_Base_Init(&TIM5_Handler);
HAL_TIM_Base_Start_IT(&TIM5_Handler); //使能定时器5和定时器5更新中断:TIM_IT_UPDATE
}
2、定义全局变量
unsigned int t1,t2;//用于保存执行代码前后的定时器5的计数器值
3、具体运用在代码上
t1=TIM5_Handler.Instance->CNT;
AT24CXX_Write(79,ppp,30);//查看改行代码花费时间
t2=TIM5_Handler.Instance->CNT;
t2-t1等于代码执行花费时间,单位为us
4、特别说明:TIM5_Handler.Instance->CNT超过最大值42亿时,会清零