NUCLEO-G071RB:010——TIM6-基本定时器
- 基本定时器
- 设计目标
- 芯片配置
- 程序修改
- 运行测试
基本定时器
基本定时器只能用于计时,可以配置有无上溢出中断,它基本到不支持下溢出中断。它的时钟源(应该)是TPCLK,内置预分频器(PSC)和自重装寄存器(ARR,相当于计数上限寄存器)
设计目标
- 配置TIM6的中断频率为1000Hz,每1S翻转一次PA5的输出。
芯片配置
1、以HSI为时钟源
(图略)
2、配置PA5(板载LD4灯)为推挽输出L
(图略)
3、配置TIM6的中断频率为1000Hz,中断优先级为LV1
如果你希望使用x分频,就要往里填写“x-1”;ARR的设置同理。
中断频率 = (模块时钟 ÷ 分频系数) ÷ 计数上限
程序修改
1、tim.c中,增加启动TIM6的函数,即将进入主循环前,要调用它
void HAL_TIM6_Base_Start_IT(void)
{HAL_TIM_Base_Start_IT(&htim6);
}
2、再增加TIM6溢出中断服务子函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance == TIM6){tim_ms ++;}
}
3、主循环内增加电灯代码
while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */if(tim_ms % 2000 < 1000){HAL_GPIO_WritePin(PA5_OUT_LD4_GPIO_Port, PA5_OUT_LD4_Pin, GPIO_PIN_RESET);}else{HAL_GPIO_WritePin(PA5_OUT_LD4_GPIO_Port, PA5_OUT_LD4_Pin, GPIO_PIN_SET);}}
运行测试
1、LD4的闪烁周期是2s,占空比为50%