配置系统时钟
选择外部高速时钟
配置定时器
使用内部时钟
定时频率 =单片机主频/(prescaler+1)/(counter period+1)/ (repetition counter+1)
使能定时器中断,配置中断优先级
实现回调函数
/***************定时器回调函数**************/
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
static uint16_t tick=0;
/* Prevent unused argument(s) compilation warning */
if(htim==&htim1)
{
if(++tick》20)
{
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_6);
tick=0;
}
}
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_TIM_PeriodElapsedCallback could be implemented in the user file
*/
}
在主程序中开启定时器
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_TIM1_Init();
HAL_TIM_Base_Start_IT(&htim1); //启动定时器
while (1)
{
}
}
配置系统时钟
选择外部高速时钟
配置定时器
使用内部时钟
定时频率 =单片机主频/(prescaler+1)/(counter period+1)/ (repetition counter+1)
使能定时器中断,配置中断优先级
实现回调函数
/***************定时器回调函数**************/
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
static uint16_t tick=0;
/* Prevent unused argument(s) compilation warning */
if(htim==&htim1)
{
if(++tick》20)
{
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_6);
tick=0;
}
}
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_TIM_PeriodElapsedCallback could be implemented in the user file
*/
}
在主程序中开启定时器
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_TIM1_Init();
HAL_TIM_Base_Start_IT(&htim1); //启动定时器
while (1)
{
}
}
举报