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

[复制链接]
2824|6
 楼主| jiang123455555 发表于 2024-7-12 13:52 | 显示全部楼层 |阅读模式
请大牛指点,  程序上电,执行定时器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-15 14:53 | 显示全部楼层
定时器启动后,中断初始化之前清除
zhjb1 发表于 2024-11-19 15:01 | 显示全部楼层
到底是tmr6还是tmr1?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

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