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

查看: 9422|回复: 7

输入捕获中断

[复制链接]

3

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2010-7-21 10:42:50 | 显示全部楼层 |阅读模式
TIM_TimeBaseStructure.TIM_Period = 0xFFFF;     //周期0~FFFF
  TIM_TimeBaseStructure.TIM_Prescaler = 5;       //时钟分频
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;   //时钟分割
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//模式
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);//基本初始化

  TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;
  TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
  TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
  TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
  TIM_ICInitStructure.TIM_ICFilter = 0x4;
  //TIM_PWMIConfig(TIM2, &TIM_ICInitStructure);
   TIM_ICInit(TIM2, &TIM_ICInitStructure);        //初始化
  
  /* Select the TIM2 Input Trigger: TI2FP2 */
  TIM_SelectInputTrigger(TIM2, TIM_TS_TI2FP2);    //选择时钟触发源
  /* Select the slave Mode: Reset Mode */
  TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset);  //触发方式
  /* Enable the Master/Slave Mode */
  TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable);  //启动定时器的被动触发
 
  /* TIM enable counter */
  TIM_Cmd(TIM2, ENABLE);
  /* Enable the CC2 Interrupt Request */
  TIM_ITConfig(TIM2, TIM_IT_CC2, ENABLE);
 
/* TIM2 channel 2 pin (PA.01) configuration */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
 
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;  //设置TIM2通道输入中断
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; /* Configure the NVIC Preemption Priority Bits[配置优先级组] */
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; 
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;   /* Enable the TIM2 gloabal Interrupt [允许TIM2全局中断]*/
  NVIC_Init(&NVIC_InitStructure);
 
TIM2_IRQHandler(void)
{
   /* Clear TIM2 Capture compare interrupt pending bit */
  TIM_ClearITPendingBit(TIM2, TIM_IT_CC2);
  /* Get the Input Capture value */
  IC2Value = TIM_GetCapture2(TIM2);
  if (IC2Value != 0)
  {
    /* Duty cycle computation */
    DutyCycle = (TIM_GetCapture1(TIM2) * 100) / IC2Value;
    /* Frequency computation */
    Frequency = 72000000 / IC2Value;
  }
  else
  {
    DutyCycle = 0;
    Frequency = 0;
  }
}
 
请大家帮忙分析我的程序为什么进不了捕获中断
<
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2010-7-21 11:35:40 | 显示全部楼层

RE:输入捕获中断

TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
这里配置的1通道,
* TIM2 channel 2 pin (PA.01) configuration */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
这里触发的是2通道。
你把这个修改相对应了,试试。
回复 支持 反对

使用道具 举报

3

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2010-7-21 11:56:04 | 显示全部楼层

回复:输入捕获中断

设置版主要求的设置了,从pin (PA.01)管脚直接用信号发生器输入50赫兹的方波,可就是进入中断!!
回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2010-7-21 14:47:09 | 显示全部楼层

RE:输入捕获中断

可就是不进入中断吗?还是进入中断?
回复 支持 反对

使用道具 举报

3

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2010-7-21 15:42:17 | 显示全部楼层

回复:输入捕获中断

调试程序时,进不到中断程序里。
 
123.JPG
回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2010-7-21 16:56:28 | 显示全部楼层

RE:输入捕获中断

看不到,你把你的图片截好发上来。
回复 支持 反对

使用道具 举报

3

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2010-7-22 08:53:08 | 显示全部楼层

回复:输入捕获中断

程序编译 没有 报错误 !但 近不了中断子程序 里!!请版住 帮忙分析 QQ 624364968
1234.JPG

123.doc

下载

50.5 KB, 下载次数: 11

回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2010-7-22 09:56:08 | 显示全部楼层

RE:输入捕获中断

你把GPIO部分去掉,如果还不行,就按例程改成输出,如果输出没有问题,那么就直接在输出的基础上该位输入,我看了一下,这个不需要设置gpio
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版