1. 定时器溢出时间计算公式:
Tout:中断溢出的时间
arr:自动重装载值
psc:定时器分频系数
Tclk:时钟频率
设置外部高速时钟为72MH
若定时时间为:1ms
也就是说单片机1ms进入一次定时器中断
Tout = ((71+1)*(999+1))/72MHz s
Tout = ( 72 * 1000 ) / 72000000 s =0.001s
0.001s = 1ms
2.配置TIM
Internal Clock(内部时钟)
Prtscaler (定时器分频系数) : 71
Counter Mode(计数模式) Up(向上计数模式)
Counter Period(自动重装载值) : 999
CKD(时钟分频因子) :No Division (不分频 )
auto-reload-preload(自动重装载) : Enable (使能)
NVIC使能
3.MDK5编辑
1.中断函数
2.弱定义回调函数
//定时器中断回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance==TIM6) //判断是来自定时器6的
{
//编写功能
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
}
}
3.复制回调函数到主函数中,编辑需要执行的内容
4.打开TM定时器中断的时钟
HAL_TIM_Base_Start_IT(&htim6);
5.可以在tim.c文件里更改Prtscaler (定时器分频系数)和Counter Period(自动重装载值),从而改变进入中断的频率