OpenEdv-开源电子网

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

STM32F030 TIM输入捕获配置问题

[复制链接]

22

主题

103

帖子

0

精华

高级会员

Rank: 4

积分
950
金钱
950
注册时间
2017-2-23
在线时间
205 小时
发表于 2019-6-5 17:22:10 | 显示全部楼层 |阅读模式
20金钱
现在项目需求正在调试STM32F030   TIM输入捕获可以按照官网的例子一步一步下来就是不进中断、
void TIM3_Init(void)
{
         NVIC_InitTypeDef         NVIC_InitStructure;
  TIM_ICInitTypeDef  TIM_ICInitStructure;
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
                GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
       
       
        RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);                                                                                                                                   

       
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;                 
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_1);
        GPIO_Init(GPIOA, &GPIO_InitStructure);
       
                       
       
                NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
                NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
                NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
                NVIC_Init(&NVIC_InitStructure);
       
  TIM_TimeBaseStructure.TIM_Period = 65535;
  TIM_TimeBaseStructure.TIM_Prescaler = 19;//24ms
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIM3, &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 = 0x00;
  TIM_ICInit(TIM3, &TIM_ICInitStructure);      


  TIM_ClearITPendingBit(TIM3,  TIM_IT_CC2);
  TIM_ITConfig(TIM3, TIM_IT_CC2, ENABLE);
  TIM_Cmd(TIM3, ENABLE);
}






中断服务函数

uint32_t q;

void TIM3_IRQHandler(void)
{
  if (TIM_GetITStatus(TIM3, TIM_IT_CC2) != RESET)
  {
  TIM_ClearITPendingBit(TIM3 , TIM_IT_CC2);  
q++;
               
  }

}






求大神解惑

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

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2019-6-5 17:57:14 | 显示全部楼层
检查下配置,参考原子的输入捕获看下
业精于勤荒于嬉;行成于思毁于随!
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2019-6-5 20:07:57 | 显示全部楼层
帮顶~~
回复

使用道具 举报

22

主题

103

帖子

0

精华

高级会员

Rank: 4

积分
950
金钱
950
注册时间
2017-2-23
在线时间
205 小时
 楼主| 发表于 2019-6-12 12:01:15 | 显示全部楼层
可以实现了,原因是硬件电路输入端没有输入信号
回复

使用道具 举报

22

主题

103

帖子

0

精华

高级会员

Rank: 4

积分
950
金钱
950
注册时间
2017-2-23
在线时间
205 小时
 楼主| 发表于 2019-6-12 12:03:16 | 显示全部楼层
但是现在又有另外一个问题是这样,开启了定时器3作为定时捕获,开启定时器16作为系统定时,不能实现两个定时器同时开启,一直进中断出不来,是时序的问题?还是逻辑的问题?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 12:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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