这个是我的源代码,可是总是进不了中断,哪里出问题了》???菜鸟求祝。。。。。论坛上也没有关于基本定时器的使用,谢谢各位大神
void time6_init(u16 psc,u16 arr)
{
RCC->APB1ENR|=1<<4; //使能定时器6的时钟
TIM6->
SC=psc; //设置预分频数
// TIM6->EGR|=1<<0;
TIM6->ARR=arr; //设置重装值
TIM6->DIER|=1<<0; //使能UIE更新中断
TIM6->SR&=~(1<<0); //清除状态标志位
TIM6->CR1|=1<<0; //
一加上这个语句 程序就一直运行在这儿
#ifdef EN_TIME6_INTERRUPT
MY_NVIC_Init(1,1,TIM6_IRQChannel,2);//抢占优先级为0 次优先机0 组2
#endif
}
//开启定时器
void time6_enable(void)
{
TIM6->CR1|=1<<0; //计数器使能
// fengmingqi=1;
}
//关闭定时器
void time6_disable(void)
{
TIM6->CR1&=~(1<<0); //计数器失能
}
void TIM6_IRQHandler(void)
{
fengmingqi=1;
if(TIM6->SR&0x0001) //更新中断标志
{
LED2=!LED2;
}
TIM6->SR&=~(1<<0); //清除更新中断标志位
}
---------------------------------
你的芯片有没有TIM6先?
STM32有的有,有的没有.好好看看选型手册.
一周热门 更多>