stm32f103c8t6的定时器中断配置如下:
1、时基工作参数配置
HAL_TIM_Base_Init();
注意这个函数里面是有16位的arr和16位的psc两个参数的;
在初始化之前需要定义一个全局的结构体,因为后面别的函数也会用到;
结构体初始化主要有instance和init;
其中init主要配置
AutoReloadPreload,这里配置是否进行自动重装载
CounterMode,这里配置的是向上计数模式,还有别的计数模式
Period,这个就是设置的传进去的arr参数
2、msp初始化(NVIV,CLOCK,中断等)
HAL_TIM_Base_MspInit();
这个函数是一个单独的函数
__HAL_RCC_TIMx_CLK_ENABLE();
在使用这个函数之前需要判断一
下是否使用tim2
HAL_NVIC_SetPriority();
因为没有别的中断,抢占优先级和响应优先级可以随便设置
HAL_NVIV_EnableIRQ();
3、使能更新中断
这个和4中的函数是一起的
4、启动计数器
HAL_TIM_Base_Start_IT();
这个函数直接在timer_inti()中使用
5、中断服务函数编写
TIMx_IRQHandler();
单独的函数,没有参数,注意里面需要一个公共服务函数HAL_TIM_IRQHandler();
6、更新中断回调函数编写
HAL_TIM_PeriodElapsedCallback();
注意有参数,判断一下是否使用tim2再编写业务代码
定时器溢出时间计算公式:
ARR:自动重装载值
PSC:预分频值
Tclk:系统时钟