[STM32G0] 不能进入定时器中断处理程序。

[复制链接]
356|0
柴库柴库 发表于 2025-9-7 10:18 | 显示全部楼层 |阅读模式
, , , , , TI, pi
本帖最后由 柴库柴库 于 2025-10-2 19:03 编辑

在STM32CubeIDE中使用STM32G030,且未使用HAL。我通过.ioc文件启用了定时器中断。当我在中断处理程序(位于stm32g0xx_it.h文件中)设置断点时,程序并未进入该处理程序。即使尝试为中断设置优先级,问题仍然存在。以下是代码:


GPIO_InitStruct.Pin = IC_mode_Pin;
  GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
  GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
  GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
  GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
  GPIO_InitStruct.Alternate = LL_GPIO_AF_2;
  LL_GPIO_Init(IC_mode_GPIO_Port, &GPIO_InitStruct);

  /* TIM1 interrupt Init */
  NVIC_SetPriority(TIM1_BRK_UP_TRG_COM_IRQn, 0);
  NVIC_EnableIRQ(TIM1_BRK_UP_TRG_COM_IRQn);
  NVIC_SetPriority(TIM1_CC_IRQn, 0);
  NVIC_EnableIRQ(TIM1_CC_IRQn);


使用了TIM1中断,中断处理程序如下。
void TIM1_CC_IRQHandler(void)
{
  /* USER CODE BEGIN TIM1_CC_IRQn 1 */
        if(TIM1->SR |= TIM_SR_CC3IF)   // When a capture occurs, the corresponding CC1IF flag is set
        {
                TIM1->SR &= ~TIM_SR_CC3IF;        //clear the flag by writing it to 0
                TIM1->CCMR1 |=TIM_CCMR1_OC1M_2;   //Force inactive level
                TIM3->CR1 |= TIM_CR1_CEN;        // Starts the counter
        }
  /* USER CODE END TIM1_CC_IRQn 1 */
}



您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

80

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部