你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
tianruoliang 提问时间:2014-7-12 15:13 /
 想用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);


 
收藏 评论8 发布时间:2014-7-12 15:13

举报

8个回答
巅峰残狼 回答时间:2014-7-13 13:31:34

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

没玩过stm8,研究了半小时也没看明白出现什么问题,哎,失败
feel-376797 回答时间:2014-7-13 13:37:48

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

//捕获状态
//[7]:0,没有成功的捕获;1,成功捕获到一次.
//[6]:0,还没捕获到低电平;1,已经捕获到低电平了.
//[5:0]:捕获低电平后溢出的次数
u8  TIM2CH2_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中断函数不一样哦
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版