STM8S103F3 + COSMIC 内部8M时钟 TIM2 CH1(PC5脚)测量脉冲时间,TIM2初始化代码如下:
//输入捕获定时器
void Timer2Open(void)
{
CLK->PCKENR1 |= CLK_PCKENR1_TIM2; //时钟打开
TIM2->PSCR = 3; //2^3=8分频 计数周期为1us
TIM2->ARRH=0XFF; //必须先设置ARR的高字节
TIM2->ARRL=0XFF;//再设置低字节
TIM2->CNTRH = 0;
TIM2->CNTRL = 0;
TIM2->CCER1=0;
TIM2->CCMR1 = 1; // 连接到TIM2_CH1引脚,无滤波,无分频
// 注:CC1S仅在通道关闭时(TIM1_CCER1寄存器的CC1E=0)才是可写的.
TIM2->CCER1 = TIM2_CCER1_CC1P|TIM2_CCER1_CC1E; // 下降沿有效 捕获使能
TIM2->SR1 = 0; // 清除捕获标志
TIM2->SR2 = 0; // 清除重复捕获标志
TIM2->IER = TIM2_IER_CC1IE|TIM2_IER_UIE ; // 捕获中断使能
TIM2->CR1 = TIM2_CR1_ARPE|TIM2_CR1_CEN ; //使能计数
}
溢出中断能进入,但进入不了输入捕获中断
在溢出中断中使查看TIM2->SR1寄存器的值是0X0D,很怪异
不知道各位有没有遇到这种情况???
|