打印

STM32在外部中断里启动定时器TIM3,无法启动定时器

[复制链接]
6957|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
succeedli|  楼主 | 2012-8-26 14:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void Timerx_Init(u16 arr,u16 psc)
{
        RCC->APB1ENR|=1<<1;//TIM3时钟使能   
        TIM3->ARR=arr;  //设定计数器自动重装值//刚好1ms   
        TIM3->PSC=psc;  //预分频器7200,得到10Khz的计数时钟
        //这两个东东要同时设置才可以使用中断
        TIM3->DIER|=1<<0;   //允许更新中断                                
        TIM3->DIER|=1<<6;   //允许触发中断
        //TIM3->CR1|=1<<2|1<<7;//|1<<3;           
        //TIM3->CR1|=0x01;    //使能定时器3
          MY_NVIC_Init(0,0,TIM3_IRQChannel,2);//抢占0,子优先级0,组2        ,最高先级                                                                 
}

Timerx_Init(6144,0);//72M的计数频率,计数到6144为85us

void EXTI4_IRQHandler(void)                //CFSS中断
{               
           TIM3->CR1|=0x01;    //使能定时器3

Ex_NVIC_Config(GPIO_B,4,FTIR);//
MY_NVIC_Init(1,2,EXTI4_IRQChannel,2);//

分部代码如上,在外部中断4中启动定时器,但不知道是定时器没工作,还是没有进入中断?急,在线等,谢谢。
沙发
airwill| | 2012-8-26 20:16 | 只看该作者
呵呵, 为什么不使用调试器呢?
在中断里设个断点不就找到问题了

使用特权

评论回复
板凳
figo20042005| | 2012-8-26 20:30 | 只看该作者
楼上说的有道理。也可以在中断里点个LED

使用特权

评论回复
地板
IJK| | 2012-8-27 10:00 | 只看该作者
还有个建议,可以看看定时器的相应counter寄存器的值会不会改变。

使用特权

评论回复
5
huazi54473| | 2015-4-9 20:20 | 只看该作者
airwill 发表于 2012-8-26 20:16
呵呵, 为什么不使用调试器呢?
在中断里设个断点不就找到问题了

您这种方法具体怎么操作呢?:)

使用特权

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

本版积分规则

0

主题

3

帖子

0

粉丝