|
STM8S103F2的板子,串口已经调通了,通信正常,然后调TIMER2
用HSI
初始化
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_PRESCALER_256, 624);
TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE); //1-此句打开中断
enableInterrupts();
TIM2_Cmd(ENABLE);
下面是中断处理函数:
#ifdef _IAR_SYSTEMS_
#pragma vector=0xF
__interrupt void TIM2_UPD_OVF_BRK_IRQHandler(void)
#endif
{
TIM2_ClearFlag(TIM2_FLAG_UPDATE);
iDelayNow++;
}
Timer2定义也打开了,同样的代码,在STM8S的开发板上是没问题的,移到我自己的板子上就是不进入TIMER2中断,单步执行初始化代码的时候,进入到//1处执行后,发现TIMER2的中断没有打开,切入内部代码,执行的是TIM2->IER |= (u8)TIM2_IT;
这个也是对的,TIM2_IT的值是TIM2_IT_UPDATE,该枚举变量的值是0x01,但是执行后TIM2->IER的值仍然是0x00,后来我直接给其赋值,TIM2->IER = 0x01,发现其值扔为0x00,这肯定是打不开Timer2中断的,难道这是个IAR的BUG?
|
|