默认的是16MHz
我们直接傻子玩法,直接填64回车,让它自己配置
OK,很不戳(详细的配置及原理大Z老师已经讲过了,咱就不多说了)
打开定时器下边我们计算一下,计算公式 f = tclk/(prescaler+1)/(period+1) f:频率 tclk:时钟频率 prescaler:预分频 period:自动加载值 1ms一次中断 f=1000; 64000000/32000/1000=1000
优先级
编写回调函数跟EXTI中断一样
这里我们用周期运行回调函数,继续点灯
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef* tim_baseHandle)//周期运行回调,配置定时进入中断 { if(tim_baseHandle->Instance == htim6.Instance) { /* Toggle LED */ HAL_GPIO_TogglePin(LED_GREEN_GPIO_Port,LED_GREEN_Pin); } }
然后在main函数里添加启动
HAL_TIM_Base_Start_IT(&htim6);
用逻辑分析仪抓一下引脚看看时间准不准
看起来效果挺好的