一、实现的功能
实现1s定时中断
二、参数配置
1、配置RCC、SYS、USART1、时钟84MHz
2、一般单纯计时功能使用TIM6和TIM7
Prescaler(时钟预分频数):8400-1
Counter Mode(计数模式):Up(向上计数模式) 基本定时器只能是向上计数
Counter Period(自动重装载值):10000-1
auto-reload-preload(自动重装载):Enable(使能)
TRGO Parameters(触发输出):不使能 在定时器的定时时间到达的时候输出一个信号(如:定时器更新产生TRGO信号来触发ADC的同步转换)
Prescaler和Counter Period的计算:84MHz/8400/10000=1,即计时1s
3、设置中断
4、生成代码
三、代码编写
1、开启定时器及中断
HAL_TIM_Base_Start_IT(&htim6);
2、添加中断回调函数
uint16_t a=0;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance==TIM6)
{
a++;
}
}
3、编译烧写程序,进行debug,发现a的数值1s加1。
四、需要背的
1、开启基本定时器及中断
HAL_TIM_Base_Start_IT(&htim6);
2、基本定时器中断回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance==TIM6)
{
}
}