打印

有关stm32定时器的问题

[复制链接]
1997|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ai大海ai|  楼主 | 2012-12-1 22:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚学STM32,正在学中断和定时器中断,在定时器中断中,学着人家写中断子程序:
void TIM2_IRQHandler(void)
{
    .......................//这里写定时器
  .......................//这里写清除标志位
    ......................//这里写要定时的程序,例如led亮灭,但其中有个i=i+1。。。我想知道,即使清除了中断标志位,每当定时器计数溢出,也产生中断?如果是这样的话,应该怎样在一段时间内取消定时器中断?

};
小弟不才,描述不清,若有高手看懂,请与赐教。。。
沙发
ai大海ai|  楼主 | 2012-12-2 10:00 | 只看该作者
没人回答,自己顶上去。。。

使用特权

评论回复
板凳
song19881218| | 2012-12-2 11:36 | 只看该作者
清楚中断标志位并不是把中断关了,如果不清,会一直进这个中断程序。清中断标志位和关中断是两码事。

使用特权

评论回复
地板
ai大海ai|  楼主 | 2012-12-2 17:47 | 只看该作者
song19881218 发表于 2012-12-2 11:36
清楚中断标志位并不是把中断关了,如果不清,会一直进这个中断程序。清中断标志位和关中断是两码事。 ...

哦,明白,那怎样关中断呢?

使用特权

评论回复
5
杨爱林林| | 2012-12-4 09:01 | 只看该作者
打开core_cm3.h
找到NVIC_DisableIRQ和NVIC_EnableIRQ
禁能和使能

使用特权

评论回复
6
uet_cache| | 2012-12-4 10:32 | 只看该作者
定时器初始中,应该有使能定时中断的操作,ITCONFIG那个,,把中断使能位关掉,相应的中断就不会进去了!这些例子多的很,你随便找官方一个TIM的例程,参考一下它的中断函数或定时器初始化函数就知道了!

使用特权

评论回复
7
21leio| | 2012-12-4 12:46 | 只看该作者
在STM32 v3.5固件库中,使能和失能硬件中断函数是XXX_ITConfig(XXX_TypeDef* XXXx, uint16_t  XXX_IT, FunctionalState NewState);

比如
USART_ITConfig(USART1, USART_IT_TXE, ENABLE);   //使能USART1的发送完成中断;
USART_ITConfig(USART1, USART_IT_TXE, DISABLE);   //失能USART1的发送完成中断;

if ( USART_GetITStatus(USART1,USART_IT_TXE) != RESET ) //查询USART1的发送完成中断标志是否置位?

USART_ClearITPendingBit(USART1,USAR_IT_TXE);   //清除USART1的发送完成标志位,避免重复进入USART1_IRQHandler(void)中断处理函数。


使用特权

评论回复
8
abin0415| | 2012-12-4 15:44 | 只看该作者
STM32里面有中断使能位,你把相应的中断使能位清0即可取消定时器中断。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

43

帖子

0

粉丝