tianruoliang 发表于 2014-7-12 15:13:26

【求助】STM8S103FP6的TIM2的捕获功能

 想用STM8S103FP6的TIM2的捕获功能测仪方波的脉宽,但每次采集回来的数都是0。
///////////////////////////////////TIM2初始化///////////////////////////////////////////
void Tim2_Init(void)
{  
    TIM2_DeInit();
    TIM2_TimeBaseInit(TIM2_PRESCALER_8, 0x0000);
    TIM2_ICInit(TIM2_CHANNEL_1, TIM2_ICPOLARITY_RISING, TIM2_ICSELECTION_DIRECTTI, TIM2_ICPSC_DIV1, 0x00);
    TIM2_ITConfig(TIM2_IT_CC1, ENABLE);
    TIM2_ARRPreloadConfig(ENABLE);
    enableInterrupts();
    TIM2_Cmd(ENABLE); 
}
/////////////////////////////////TIM2中断//////////////////////////////////////////////
 INTERRUPT_HANDLER(TIM2_CAP_COM_IRQHandler, 14)
 {
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */  
      TIM2_ClearITPendingBit(TIM2_IT_CC1);   
      TCS_OK;
      yz=TIM2_GetCapture1();
      i++;
      if(i==0xff)
      {
          i=0;
      }   
 }
/////////////////////////////main函数中UART发送部分///////////////////////////////////
UART1_SendData8(yz/256);
UART1_SendData8(yz%256);


 

巅峰残狼 发表于 2014-7-13 13:31:34

RE:【求助】STM8S103FP6的TIM2的捕获功能

没玩过stm8,研究了半小时也没看明白出现什么问题,哎,失败

feel-376797 发表于 2014-7-13 13:37:48

RE:【求助】STM8S103FP6的TIM2的捕获功能

//捕获状态
//:0,没有成功的捕获;1,成功捕获到一次.
//:0,还没捕获到低电平;1,已经捕获到低电平了.
//:捕获低电平后溢出的次数
u8TIM2CH2_CAPTURE_STA=0;        //输入捕获状态                    
u16        TIM2CH2_CAPTURE_VAL;        //输入捕获值
//定时器2捕获中断服务函数
INTERRUPT_HANDLER(TIM2_UPD_OVF_IRQHandler,TIM2_UPD_OVF_VECTOR)
{
u8 tsr;
static u8 led;
tsr=TIM2->SR1;
        if((TIM2CH2_CAPTURE_STA&0X80)==0)//还未成功捕获       
{
if(tsr&0X01)//溢出
{             
if(TIM2CH2_CAPTURE_STA&0X40)//已经捕获到高电平了
{
if((TIM2CH2_CAPTURE_STA&0X3F)==0X3F)//高电平太长了
{
TIM2CH2_CAPTURE_STA|=0X80;//标记成功捕获了一次
TIM2CH2_CAPTURE_VAL=0XFFFF;
}else TIM2CH2_CAPTURE_STA++;
}          
}             
        }
LED1_SET(led=!led);
TIM2->SR1&=~(1CCR2H;//获取当前的捕获值.
TIM2CH2_CAPTURE_VALCCER1|=1CNTRL=0;       //计数器清空
TIM2CH2_CAPTURE_STA=0;       //清空
TIM2CH2_CAPTURE_VAL=0;
TIM2CH2_CAPTURE_STA|=0X40;       //标记捕获到了下降沿
       TIM2->CCER1&=~(1

aaa999kk 发表于 2014-7-17 16:56:09

RE:【求助】STM8S103FP6的TIM2的捕获功能

初始化模块检查下

有缘于你 发表于 2014-7-20 18:26:47

RE:【求助】STM8S103FP6的TIM2的捕获功能

参考下http://www.amobbs.com/thread-5513154-1-1.html

yangjiawei1223 发表于 2015-5-29 11:24:21

我用TIM2_CH2也是捕获都是0,还有TIM2_CH1为什么有2个IO都有PD4和PC5,捕获是随便用一个就可以吗

wdc5201314 发表于 2016-4-9 18:40:00

yangjiawei1223 发表于 2015-5-29 11:24
我用TIM2_CH2也是捕获都是0,还有TIM2_CH1为什么有2个IO都有PD4和PC5,捕获是随便用一个就可以吗 ...

你解决了吗?我也是使用PD3(TIM2CH2)进不了中断

zcl201207 发表于 2016-4-9 20:58:48

:):):):):):):):)

genius3115 发表于 2018-5-9 15:13:12

INTERRUPT_HANDLER(TIM2_CAP_COM_IRQHandler, 14)
INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
这两个TIM2中断函数不一样哦
页: [1]
查看完整版本: 【求助】STM8S103FP6的TIM2的捕获功能