hal库定时器中断
2023-12-22 19:56:30
不想用回调函数就直接在中断函数里处理也可以。
void MX_TIM7_Init(void)
{
__HAL_RCC_TIM7_CLK_ENABLE();
TIM_MasterConfigTypeDef sMasterConfig = {0};
htim7.Instance = TIM7;
htim7.Init.Prescaler = (HAL_RCC_GetSysClockFreq()/1000000)-1; //设置分频
htim7.Init.CounterMode = TIM_COUNTERMODE_UP; //设置向上计数
htim7.Init.Period = 999;
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; //打开自动重载
if (HAL_TIM_Base_Init(&htim7) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
HAL_NVIC_SetPriority(TIM7_IRQn, 0, 0); //设置终端优先级和分组
HAL_NVIC_EnableIRQ(TIM7_IRQn); //开中断
// HAL_TIM_Base_Start_IT(&htim7);
}
void TIM7_IRQHandler(void) //中断函数
{
HAL_TIM_IRQHandler(&htim7); //中断标准清除并调用回调函数
}
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) //回调函数
{
static int16 cnt=0;
cnt++;
if(htim == &htim7)
{
if(cnt==350){
cnt=0;
flag=0;
}
// soft_timer_it_func();
}
}
文章来源:https://blog.csdn.net/weixin_55944697/article/details/135159611
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!