打印
[其他ST产品]

求解析STM32输入捕获的配置

[复制链接]
2712|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
伊泽瑞拉|  楼主 | 2014-6-7 09:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void TIM4_COUNT_Config(void)
{
        TIM_ICInitTypeDef  TIM_ICInitStructure;

                TIM_DeInit(TIM4);
                TIM_ICStructInit(&TIM_ICInitStructure);
                TIM_ICInitStructure.TIM_ICMode = TIM_ICMode_ICAP; //使用输入捕获模式
                TIM_ICInitStructure.TIM_Channel = TIM_Channel_3;          //使用TIM通道3
                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 = 0x0;
                TIM_ICInit(TIM4, &TIM_ICInitStructure);

  TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);


}


沙发
伊泽瑞拉|  楼主 | 2014-6-7 09:47 | 只看该作者
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;    我想知道这块这么配置的原因和解释      

使用特权

评论回复
板凳
伊泽瑞拉|  楼主 | 2014-6-7 09:48 | 只看该作者

使用特权

评论回复
地板
mmuuss586| | 2014-6-7 10:06 | 只看该作者
TIM输入1,2,3或4选择对应地与IC1或IC2或IC3或IC4相连

使用特权

评论回复
5
mmuuss586| | 2014-6-7 10:06 | 只看该作者
本帖最后由 mmuuss586 于 2014-6-7 10:08 编辑

TIM_ICSelection_DirectTI:TIM输入1对应IC1……

你看头文件的注释就明白了;
#define TIM_ICSelection_DirectTI           ((uint16_t)0x0001) /*!< TIM Input 1, 2, 3 or 4 is selected to be
                                                                   connected to IC1, IC2, IC3 or IC4, respectively */
#define TIM_ICSelection_IndirectTI         ((uint16_t)0x0002) /*!< TIM Input 1, 2, 3 or 4 is selected to be
                                                                   connected to IC2, IC1, IC4 or IC3, respectively. */

使用特权

评论回复
6
伊泽瑞拉|  楼主 | 2014-6-7 10:16 | 只看该作者
mmuuss586 发表于 2014-6-7 10:06
TIM_ICSelection_DirectTI:TIM输入1对应IC1……

你看头文件的注释就明白了;

我想知道使用这种模式的时候,每次采样的时间放在哪个寄存器  或者  可以通过哪个值去获取

使用特权

评论回复
7
mmuuss586| | 2014-6-7 10:34 | 只看该作者
你这只是一部分;
大部分程序都没写;
通过中断获取是TIM_IT_CC1,TIM_IT_CC2,TIM_IT_CC3,TIM_IT_CC4那个寄存器捕获;
一个定时器有4个通道

使用特权

评论回复
8
mmuuss586| | 2014-6-7 10:34 | 只看该作者

使用特权

评论回复
9
伊泽瑞拉|  楼主 | 2014-6-7 10:39 | 只看该作者
捕获模式原理选定输入引脚发生选定脉冲触发沿(上升沿或下降沿)时候则该时刻定时器计数值TIMx_CNT被保存同时产生断(TIMx_CNT值会与任何东西进行比较)该功能常应用于测量外来脉冲脉宽

使用特权

评论回复
10
mmuuss586| | 2014-6-7 10:40 | 只看该作者
伊泽瑞拉 发表于 2014-6-7 10:39
捕获模式原理选定输入引脚发生选定脉冲触发沿(上升沿或下降沿)时候则该时刻定时器计数值TIMx_CNT被保存同时 ...

恩,你可以这么理解

使用特权

评论回复
11
mmuuss586| | 2014-6-7 10:41 | 只看该作者
伊泽瑞拉 发表于 2014-6-7 10:39
捕获模式原理选定输入引脚发生选定脉冲触发沿(上升沿或下降沿)时候则该时刻定时器计数值TIMx_CNT被保存同时 ...

你也可以看下,ST的中文笔记
https://bbs.21ic.com/icview-709244-1-1.html

使用特权

评论回复
12
wangbao619| | 2014-6-7 15:28 | 只看该作者
不知道设置的时候,看看这个参数是对哪个寄存器进行设置的,然后查手册,看寄存器就好了。

使用特权

评论回复
13
伊泽瑞拉|  楼主 | 2014-6-7 15:29 | 只看该作者
mmuuss586 发表于 2014-6-7 10:41
你也可以看下,ST的中文笔记
https://bbs.21ic.com/icview-709244-1-1.html

我库文件里面没有TIM_ICMode_ICAP的定义    就是捕获模式这个的寄存器定义      求帮助

使用特权

评论回复
14
伊泽瑞拉|  楼主 | 2014-6-7 15:34 | 只看该作者
@限量_个性。 @johnzyh 我库文件里面没有TIM_ICMode_ICAP的定义    就是捕获模式这个的寄存器定义      求帮助

使用特权

评论回复
15
伊泽瑞拉|  楼主 | 2014-6-7 18:20 | 只看该作者
mmuuss586 发表于 2014-6-7 10:34
可参考这个例程
http://bbs.ghtt.net/thread-1900533-1-1.html

问题是用3.5的库怎么配置     

使用特权

评论回复
16
mmuuss586| | 2014-6-7 18:51 | 只看该作者
伊泽瑞拉 发表于 2014-6-7 18:20
问题是用3.5的库怎么配置

那你看下我发的,103资料,有pwm输入捕获的例程

使用特权

评论回复
17
通宵敲代码| | 2014-6-8 00:08 | 只看该作者
楼主好欠扁得头像啊!

使用特权

评论回复
18
伊泽瑞拉|  楼主 | 2014-6-8 23:28 | 只看该作者
mmuuss586 发表于 2014-6-7 18:51
那你看下我发的,103资料,有pwm输入捕获的例程

他里面配置的那个捕获模式的一句里面的变量   我的库里面没有定义

使用特权

评论回复
19
限量_个性。| | 2014-6-9 22:27 | 只看该作者
参数TIM_ICSelection用来设置映射关系的,把对应通道的输入捕获,按你的这个配置就是输入端IC3映射到TI1上面。

使用特权

评论回复
20
伊泽瑞拉|  楼主 | 2014-6-10 00:07 | 只看该作者
限量_个性。 发表于 2014-6-9 22:27
参数TIM_ICSelection用来设置映射关系的,把对应通道的输入捕获,按你的这个配置就是输入端IC3映射到TI1上 ...

今个好好了解了下   这个库版本不需要配置那句的   已经解决  谢谢大家了  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

227

帖子

0

粉丝