OpenEdv-开源电子网

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

定时器输入捕获初始化配置

[复制链接]

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2015-6-24
在线时间
0 小时
发表于 2015-8-26 19:01:52 | 显示全部楼层 |阅读模式
5金钱
定时器的输入捕获,寄存器版本中有一句TIM2->CCER|=1<<0;    //CC1E=1   允许捕获计数器的值到捕获寄存器中
但是我在库函数版本的初始化中没有找到类似功能的语句啊,是不是我没有看到?

最佳答案

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

 回复【6楼】 布拉格梦语 : --------------------------------- 要回庖丁解牛: 提示下你,看这个函数(注意,里面还有其他函数,一个个打开自己看): [mw_shl_code=c,true]/** * @brief Initializes the TIM peripheral according to the specified * parameters in the TIM_ICInitStruct. * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. * @param ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165538
金钱
165538
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-8-26 19:01:53 | 显示全部楼层
 回复【6楼】 布拉格梦语 :
---------------------------------
要回庖丁解牛:
提示下你,看这个函数(注意,里面还有其他函数,一个个打开自己看):
[mw_shl_code=c,true]/** * @brief Initializes the TIM peripheral according to the specified * parameters in the TIM_ICInitStruct. * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. * @param TIM_ICInitStruct: pointer to a TIM_ICInitTypeDef structure * that contains the configuration information for the specified TIM peripheral. * @retval None */ void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct) { /* Check the parameters */ assert_param(IS_TIM_CHANNEL(TIM_ICInitStruct->TIM_Channel)); assert_param(IS_TIM_IC_SELECTION(TIM_ICInitStruct->TIM_ICSelection)); assert_param(IS_TIM_IC_PRESCALER(TIM_ICInitStruct->TIM_ICPrescaler)); assert_param(IS_TIM_IC_FILTER(TIM_ICInitStruct->TIM_ICFilter)); if((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM2) || (TIMx == TIM3) || (TIMx == TIM4) ||(TIMx == TIM5)) { assert_param(IS_TIM_IC_POLARITY(TIM_ICInitStruct->TIM_ICPolarity)); } else { assert_param(IS_TIM_IC_POLARITY_LITE(TIM_ICInitStruct->TIM_ICPolarity)); } if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1) { assert_param(IS_TIM_LIST8_PERIPH(TIMx)); /* TI1 Configuration */ TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection, TIM_ICInitStruct->TIM_ICFilter); /* Set the Input Capture Prescaler value */ TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); } else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_2) { assert_param(IS_TIM_LIST6_PERIPH(TIMx)); /* TI2 Configuration */ TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection, TIM_ICInitStruct->TIM_ICFilter); /* Set the Input Capture Prescaler value */ TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); } else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_3) { assert_param(IS_TIM_LIST3_PERIPH(TIMx)); /* TI3 Configuration */ TI3_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection, TIM_ICInitStruct->TIM_ICFilter); /* Set the Input Capture Prescaler value */ TIM_SetIC3Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); } else { assert_param(IS_TIM_LIST3_PERIPH(TIMx)); /* TI4 Configuration */ TI4_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection, TIM_ICInitStruct->TIM_ICFilter); /* Set the Input Capture Prescaler value */ TIM_SetIC4Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); } } [/mw_shl_code]

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165538
金钱
165538
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-8-26 19:39:46 | 显示全部楼层
这是寄存器代码,库函数是用函数实现的,你把所有的函数都看一遍,应该有。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2015-6-24
在线时间
0 小时
 楼主| 发表于 2015-8-26 19:53:19 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------

TIM2_ICInitStructure.TIM_Channel = TIM_Channel_1; //CC1S=01 
   TIM2_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
   TIM2_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
   TIM2_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;  
   TIM2_ICInitStructure.TIM_ICFilter = 0x00;
   TIM_ICInit(TIM2, &TIM2_ICInitStructure);
原子哥,这个不是初始化TIM2输入捕获的函数吗,我也没看见啊。其他的程序我也看了下,也没找到。。。。。
比较愚钝,麻烦原子哥帮忙找找看了。。。
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2015-8-27 14:17:00 | 显示全部楼层
TIM_ICInit跟踪
TI1_Config跟踪
小小蜗牛
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165538
金钱
165538
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-8-27 22:40:00 | 显示全部楼层
回复【3楼】布拉格梦语:
---------------------------------
你要会看代码才行。见3楼提示。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2015-6-24
在线时间
0 小时
 楼主| 发表于 2015-8-27 22:50:08 | 显示全部楼层
回复【4楼】jiutianshenjian:
---------------------------------
首先,谢谢您回答我这个问题。
其次,说句实话我看了您这个提示,翻STM32的固件库了。TIM_ICInit,这个函数结构体中我没发现能够允许捕获计数器的值到捕获寄存器中这个功能的话
TI1_Config,这个我找了好几遍没找到。。。。。。。
要是您方便,还请说的详细一点,或者截个固件库的图
实在不行,我也就不纠结这个问题了,还是用寄存器习惯。我这就是有点强迫症,其实用寄存器我自己会配置,但是突然翻到了库函数,就有这么个疑问,看历程我也没看到。
水平不够吧。。。
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2015-8-28 08:20:52 | 显示全部楼层
回复【6楼】布拉格梦语:
---------------------------------
1.在确定Options魔术棒里的 Output选项卡 里勾选 Browse Infomation,

2.编译

3.在程序中点击此函数,右键点击后选择:Go To Definition Of "TIM_ICInit" 

4.就到原子哥给你看的函数了,看看里面根据你传的参数调用了哪个函数。

5.重复3,查看其定义。
小小蜗牛
回复

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2015-6-24
在线时间
0 小时
 楼主| 发表于 2015-8-28 08:27:56 | 显示全部楼层
回复【8楼】jiutianshenjian:
---------------------------------
好,我再看看
回复

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2015-6-24
在线时间
0 小时
 楼主| 发表于 2015-8-28 08:28:19 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
谢谢原子哥,我再看看
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-15 11:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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