OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4341|回复: 1

stm32定时器的问题

[复制链接]

20

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2014-8-26
在线时间
0 小时
发表于 2014-10-17 20:11:48 | 显示全部楼层 |阅读模式
5金钱
 TIM_ICInitStructure.TIM_Channel=TIM_Channel_2; //选择通道
  TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI; //选择输入
  TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising; //选择输入活动沿
  TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1; //选择输入捕获预分频器
  TIM_ICInitStructure.TIM_ICFilter=0x00; //选择输入捕获预分频器

  TIM_ICInit(TIMx,&TIM_ICInitStructure);
  
  TIM_TimeBaseStructure.TIM_Period=5000;  //设置预转载值
  TIM_TimeBaseStructure.TIM_Prescaler=0x00;      //设置预分频
  TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;  //设置定时器的计数模式

  TIM_TimeBaseInit(TIMx,&TIM_TimeBaseStructure);

 
  //TIM_SelectSlaveMode(TIMx,TIM_SlaveMode_External1);   //选择触发的上升沿为计数器时钟
  //TIM_SelectInputTrigger(TIMx,TIM_TS_TI2FP2);           //选择定时器的输入触发源为经滤波定时器输入2
  TIM_SelectInputTrigger(TIMx,TIM_TS_TI1FP1);
  if(ch==1)
  {
    Pulse_Value=TIM_GetCapture1(TIMx);
}
  if(ch==2)
  {
    Pulse_Value=TIM_GetCapture2(TIMx);
  }
  if(ch==3)
  {
    Pulse_Value=TIM_GetCapture3(TIMx);
  }
  if(ch==4)
  {
    Pulse_Value=TIM_GetCapture4(TIMx);
  }
  TIM_Cmd(TIMx,ENABLE);
为什么 这一条语句(TIM_SelectSlaveMode(TIMx,TIM_SlaveMode_External1);   //选择触发的上升沿为计数器时钟)一定要屏蔽掉程序才能正常执行呢?可是我希望用外部时钟模式一,这是为什么,难道由TI2FP2输入的一定是外部时钟模式一,所以不用设置了吗?还有就是我是想准确计脉冲数的话,这一条语句中的TIM_TimeBaseStructure.TIM_Prescaler=0x00;      //设置预分频,预分频值一定要为0x00吗?(在外部时钟模式一的情况下)。谢谢,紧急

wu
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-18 00:17:21 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-30 06:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表