Android定时器死循环问题,开启TIM1定时器后,进入TIM1_CC_IRQHandler死循环

在配置STM32F103C8T6的TIM1为比较输出产生PWM后,程序在启动定时器时陷入TIM1_CC_IRQHandler中断循环,无法正常运行。中断处理函数中尝试设置比较值并关闭通道,但问题仍然存在。已提供的代码显示在初始化和中断处理函数中,中断不断触发,导致无法进入主程序的while循环。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有个问题咨询大佬们:设置了STM32F103R8T6 的定时器1 为比较输出  产生PWM ,现在设置好后,在定时器初始化函数中一开起定时器1就一直进入TIM1_CC_IRQHandler中断中,利用串口打印一直在这个中断里 ,没有进入while。关闭了TIM1通道也没有用,不知道为何?烦请大佬们看下问题原因在哪里

函数源代码如下:

定时器初始化函数:

void TIM1_Int_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

TIM_OCInitTypeDef  TIM_OCInitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);        //使能定时器3时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);  //使能GPIO外设和AFIO复用功能模块时钟

TIM_DeInit(TIM1);                                                      //将TIM1定时器初始化位复位值

TIM_InternalClockConfig(TIM1);

NVIC_InitTypeDef NVIC_InitStructure;

NVIC_InitStructure.NVIC_IRQChannel = TIM1_CC_IRQn;  //TIM1中断

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //先占优先级0级

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4;  //从优先级3级

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能

NVIC_Init(&NVIC_InitStructure);  //初始化NVIC寄存器

bsp_InitMOTO();

//设置该引脚为复用输出功能,输出TIM1 CH1的PWM脉冲波形        GPIOA.8

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值