定时器,输入捕获,编码器接口模式 关系是什么

2019-07-21 01:47发布

[mw_shl_code=c,true]谢谢各位,谢谢原子哥 第一,首先明确我的功能,就是想通过STM32实现对直线型磁栅编码器发出的脉冲进行计数,(也即当来一个脉冲,记一次数,)以便知道单位长度对应着多少个脉冲信号; 第二,由于原子哥的视频没有编码器接口的视频,所以我是按照输入捕获实验来学习的;但是还没有学懂;所以找了以前师兄编写的程序在看;如下;里面既设置了GPIO的一些东西(我没有贴出来),也设置了定时器的一些东西,还设置了编码器接口,还设置了输入捕获;所以我的问题来了; 疑问:A:图中对编码器接口的设置能实现我的功能吗?B:我只想对脉冲个数进行计数,是不是只需要设置编码器接口就行了?为什么还要设置定时器那些东西呢?定时器,输入捕获,编码器接口模式他们之间的关系是什么呢?设置定时器后,定时器不就是按照设定的周期自行的计数吗?并不是检测到一个脉冲计一次数;C如果图中程序不能实现我的功能,那请教大师们,想实现我的功能,都需要设置哪些,怎么设置?谢谢了;我搞了10天左右了,都没有搞定这个功能;请大家指点,谢谢; [/mw_shl_code] [mw_shl_code=c,true] /* Timer configuration in Encoder mode for left encoder*/ TIM_TimeBaseStructure.TIM_Prescaler = 0x00; // No prescaling TIM_TimeBaseStructure.TIM_Period = 200000; //max resolution(0xffffffff for TIM2&TIM5 0xffff for TIM3&TIM4) //????????????1/84M,?ó????0.0119us??200000??????×??±???ó????0.02???????????? TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;//devide by clock by one TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;// count up TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure); TIM_EncoderInterfaceConfig(TIM5, TIM_EncoderMode_TI12, TIM_ICPolarity_BothEdge, TIM_ICPolarity_BothEdge); TIM_ICStructInit(&TIM_ICInitStructure);//°????????è???????????? TIM_ICInitStructure.TIM_ICFilter = 6;//ICx_FILTER;//???¨?÷???¤?????×?????????????? //???°?????????????????????¨?÷?¤????×÷???? TIM_ICInit(TIM5, &TIM_ICInitStructure); // Clear all pending interrupts TIM_ClearFlag(TIM5, TIM_FLAG_Update); TIM_ITConfig(TIM5, TIM_IT_Update, ENABLE);//?ò???ü?????? //Reset counter TIM5->CNT = 500000;//prevent exceeding 0 when turning wheel backwards TIM_Cmd(TIM5, ENABLE);//enable left encoder[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
fanghuiopenedv
1楼-- · 2019-07-21 05:31
stm32的定时器很强大的。不仅仅只有定时中断的功能哟。可以开启输入捕获功能。
当然你也可以考虑用外部中断来做。
定时器的特殊功能要指定管脚(具体那些管脚对应那些功能,这个你要自己去查看手册和规格书,st官网上有提供的)。
wolfcan
2楼-- · 2019-07-21 09:46
 精彩回答 2  元偷偷看……
fanghuiopenedv
3楼-- · 2019-07-21 15:39
回复【3楼】wolfcan:
---------------------------------
你还是看下手册吧。感觉你对stm32不是怎么了解。手册上有专门解释tim的,或者你看下原子哥的书。
正点原子
4楼-- · 2019-07-21 18:43
回复【3楼】wolfcan:
---------------------------------
可以,中断类型,去看stm32参考手册。
里面有详细描述。

一周热门 更多>