关于 中断中读取CNT的值

2019-10-15 03:11发布

我把 TIMER1 和 TIMER8 配置成外部时钟模式2 记录外部脉冲数
TIMER7定时溢出读取 TIMER1和TIMER8的CNT的值,在其他地方读取CNT的值就好使,但在TIMER7中断里,不能把TIMER1 和 TIMER8计数器的值赋值给变量

请各位帮忙看看怎么回事
//定时器 7 中断服务程序
void TIM7_IRQHandler(void)
{
               
if(TIM7->SR&0X0001) //溢出中断
{
        zi=TIM1->CNT;
        yi=TIM8->CNT;

        TIM7->SR&=~(1<<0); //清除中断标志位
}
}
void TIM7_Int_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<5; //TIM7 时钟使能
TIM7->ARR=arr; //设定计数器自动重装值//刚好 0.1ms
TIM7->PSC=psc; //预分频器 7200,得到 10Khz 的计数时钟
TIM7->DIER|=1<<0; //允许更新中断
TIM7->CR1|=0x01; //使能定时器 7
MY_NVIC_Init(2,2,TIM7_IRQn,2);//抢占 2,子优先级 2,组 2
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。