各位大侠, 我在用STM8s103F2时遇到这样的问题。 TIM1的捕获用不了。同样的程序在105上运行得很好。 以下是我的程序。请大家给我点建议, void Tim1CapInit(void) { /*时钟分频*/ TIM1->SCRH = 0x00; TIM1->SCRL = 0x08; /*失能捕获1*/ TIM1->CCER1 &= ~0x01; /*CH1配置为输入,映射到TI1FP1上*/ TIM1->CCMR1 = (TIM1->CCMR1& (~(0x03 | 0x0F))) | 0x01; /*低电平或者下降沿有效*/ TIM1->CCER1 |= 0x02; /*使能捕获1*/ TIM1->CCER1 |= 0x1; /*允许捕获溢出中断*/ TIM1->IER |= 0x02; TIM1->IER |= 0x01; /*启动定定时器1*/ TurnOnT1(); /*启用定时器*/ enableInterrupts(); //TIM1->CR1 |= 0x01; } /*定时器1捕获中断处理*/ @far @interrupt void T1_Capture(void ) { if(0x02 == (TIM1->SR1 & 0x02)) { TIM1->SR1 &= ~0xFF; } } /*定时器1溢出中断处理*/ @far @interrupt void T1_OverFlow(void) { if(0x01 == (TIM1->SR1 & 0x01)) { TIM1->SR1 &= ~0x01; } } void main(void) { #ifdef STM8S105 /*105的通道1在C1*/ GPIO_Init(GPIOC,GPIO_PIN_1,GPIO_MODE_IN_FL_NO_IT); #endif #if STM8S103 /*103的通道1在C6*/ GPIO_Init(GPIOC,GPIO_PIN_6,GPIO_MODE_IN_FL_NO_IT); #endif Tim1CapInit(); while (1); } |
RE:关于103 Tim1捕获的求助
RE:关于103 Tim1捕获的求助
RE:关于103 Tim1捕获的求助
原因是我的Option byte没有配置,