jiang123455555 发表于 2024-7-12 13:52

定时器TMR6初始化完成后直接进中断

请大牛指点,程序上电,执行定时器TMR6初始化完成后,计数还未溢出,就直接进中断执行中断函数一次,随后就正常了。
网上找STM32的处理方式是,添加中断更新函数,并按一定的指令顺序,即可避免此次中断。
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除更新中断请求位
TIM_Cmd(TIM1, ENABLE);
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);//使能定时器1更新中断

AT32的找不到类似的函数可调用,怎么搞了?

muyichuan2012 发表于 2024-7-12 14:07

对应的三个函数分别如下:
tmr_flag_clear(TMR1, TMR_OVF_FLAG);
tmr_counter_enable(TMR1, TRUE);
tmr_interrupt_enable(TMR1, TMR_OVF_INT, TRUE);

qintian0303 发表于 2024-7-12 14:12

在开启定时器之前先清一下定时器中断标志位也会进入一次中断吗?

jiang123455555 发表于 2024-7-12 15:16

muyichuan2012 发表于 2024-7-12 14:07
对应的三个函数分别如下:
tmr_flag_clear(TMR1, TMR_OVF_FLAG);
tmr_counter_enable(TMR1, TRUE);


2楼正解, 我的清除标记位放在了初始化之后。

jiang123455555 发表于 2024-7-12 15:17

qintian0303 发表于 2024-7-12 14:12
在开启定时器之前先清一下定时器中断标志位也会进入一次中断吗?

我在使能之前清除标记不可以,需要在开中断之前清标记。

丙丁先生 发表于 2024-7-13 07:11

我喜欢打游戏 发表于 2024-7-15 14:53

定时器启动后,中断初始化之前清除

zhjb1 发表于 2024-11-19 15:01

到底是tmr6还是tmr1?
页: [1]
查看完整版本: 定时器TMR6初始化完成后直接进中断