OpenEdv-开源电子网

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

新人求助,stm32f1输入捕获实验,进不了捕获中断,求各位大侠出手相助!

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2017-7-13
在线时间
0 小时
发表于 2017-7-13 14:22:27 | 显示全部楼层 |阅读模式
1金钱
折腾了一天了,就是进入不了捕获中断,求教各位,配置函数如下。谢谢各位了。



void TIM3CH1_CAP_Init(u16 pres,u16 cnt)
{
                TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
                GPIO_InitTypeDef GPIO_InitTypeStruct;
                TIM_ICInitTypeDef TIM_ICInitTypeStruct;
                NVIC_InitTypeDef NVIC_InitTypeStruct;
       
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
       
                GPIO_InitTypeStruct.GPIO_Pin=GPIO_Pin_6;
                GPIO_InitTypeStruct.GPIO_Speed=GPIO_Speed_50MHz;
                GPIO_InitTypeStruct.GPIO_Mode=GPIO_Mode_IPU;   //éÏà-êäèë
                GPIO_Init(GPIOA, &GPIO_InitTypeStruct);
                GPIO_SetBits(GPIOA, GPIO_Pin_6); //Çåáã
       
                TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
                TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
                TIM_TimeBaseInitStruct.TIM_Period=cnt;                        //×Ô¶ˉÖØ×°ÔØÖμ
                TIM_TimeBaseInitStruct.TIM_Prescaler=pres;                    //Ô¤·ÖÆμÏμêy
                TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStruct);
       
                TIM_ICInitTypeStruct.TIM_Channel=TIM_Channel_1;
                TIM_ICInitTypeStruct.TIM_ICFilter=0x00;
                TIM_ICInitTypeStruct.TIM_ICPolarity=TIM_ICPolarity_Falling;     //ϽμÑØ′¥·¢
                TIM_ICInitTypeStruct.TIM_ICPrescaler=TIM_ICPSC_DIV1;
                TIM_ICInitTypeStruct.TIM_ICSelection=TIM_ICSelection_DirectTI;
                TIM_ICInit(TIM3,&TIM_ICInitTypeStruct);
               
                NVIC_InitTypeStruct.NVIC_IRQChannel=TIM3_IRQn;
                NVIC_InitTypeStruct.NVIC_IRQChannelCmd=ENABLE;
                NVIC_InitTypeStruct.NVIC_IRQChannelPreemptionPriority=0;
                NVIC_InitTypeStruct.NVIC_IRQChannelSubPriority=0;
                NVIC_Init(&NVIC_InitTypeStruct);
               
                TIM_ITConfig(TIM3,TIM_IT_CC1|TIM_IT_Update,ENABLE);
               
                TIM_Cmd(TIM3, ENABLE);
}



最佳答案

查看完整内容[请看2#楼]

配置看上去没什么问题,可以先检测一下该引脚有没有问题,可能引脚损坏无法产生电平变化
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

92

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1216
金钱
1216
注册时间
2016-7-17
在线时间
143 小时
发表于 2017-7-13 14:22:28 | 显示全部楼层
配置看上去没什么问题,可以先检测一下该引脚有没有问题,可能引脚损坏无法产生电平变化
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2017-7-13
在线时间
0 小时
 楼主| 发表于 2017-7-13 15:00:01 | 显示全部楼层
虾兵蟹将 发表于 2017-7-13 14:52
配置看上去没什么问题,可以先检测一下该引脚有没有问题,可能引脚损坏无法产生电平变化

好的,多谢了,我试一试。
另外,还想问一下,用一个引脚(PA1)输出PWM波,再用一根导线连到PA6(TIM3CH1)引脚上检测其低电平持续时间,硬件上或者配置上有没有什么问题??
多谢了!
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2017-7-13
在线时间
0 小时
 楼主| 发表于 2017-7-13 15:09:04 | 显示全部楼层
新人一枚 发表于 2017-7-13 15:00
好的,多谢了,我试一试。
另外,还想问一下,用一个引脚(PA1)输出PWM波,再用一根导线连到PA6(TIM3CH ...

问题解决了,我换了个引脚就可以进入中断了。。。。
回复

使用道具 举报

0

主题

92

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1216
金钱
1216
注册时间
2016-7-17
在线时间
143 小时
发表于 2017-7-13 15:09:07 | 显示全部楼层
新人一枚 发表于 2017-7-13 15:00
好的,多谢了,我试一试。
另外,还想问一下,用一个引脚(PA1)输出PWM波,再用一根导线连到PA6(TIM3CH ...

没试过,但觉得可行,STM32的定时器硬件上都是独立的,用一个定时器产生PWM,再用另一个定时器检测。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2017-7-13
在线时间
0 小时
 楼主| 发表于 2017-7-13 15:09:59 | 显示全部楼层
虾兵蟹将 发表于 2017-7-13 15:09
没试过,但觉得可行,STM32的定时器硬件上都是独立的,用一个定时器产生PWM,再用另一个定时器检测。

好的,谢谢,换成PB6就可以接收到了。。。。十分感谢!!!!!!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-12-18 16:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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