历史上的今天
今天是:2025年01月29日(星期三)
2019年01月29日 | STM32编码器接口模式
2019-01-29 来源:eefocus
1.编码器
图1 编码器示意图
图1为编码器的示意图,中间是一个带光栅的码盘,光通过光栅,接收管接收到高电平,没通过,接收到低电平。电机旋转一圈,码盘上有多少光栅,接受管就会接收多少个高电平。
2.stm32编码器接口模式(寄存器)
STM32的编码器接口模式在STM32中文参考手册中有详细的说明。

图2 STM芯片编码器接口模式说明
下图是一个计数器操作的实例,显示了计数信号的产生和方向控制。它还显示了当选择了双边沿时,输入抖动是如何被抑制的;抖动可能会在传感器的位置靠近一个转换点时产生。在这个例子中,我们假定配置如下:

图3 编码器模式下的计数器操作实例
TI 1波形先于TI 2波形90°时,每当边沿变化,计数器加1(可通过寄存器设置加减),可以看出一个光栅,被计数了4次。TI 1波形后于TI 2波形90°时 ,每遇到一次边沿变化,计数器减1。
1. //TIM2_Encoder_Init,Tim2_CH1(PA0);Tim2_CH2(PA1)
2. //arr:自动重装值 0XFFFF
3. //psc:时钟预分频数 ,不分频
4. void TIM2_Encoder_Init(u16 arr,u16 psc)
5. {
6. RCC->APB1ENR|=1<<0; //TIM2时钟使能
7. RCC->APB2ENR|=1<<2; //使能PORTA时钟
8.
9. GPIOA->CRL&=0XFFFFFF00; //PA0、PA1 清除之前设置
10. GPIOA->CRL|=0X00000044; //PA0、PA1 浮空输入
11.
12. TIM2->ARR=arr; //设定计数器自动重装值
13. TIM2->PSC=psc; //预分频器
14.
15. TIM2->CCMR1 |= 1<<0; //输入模式,IC1FP1映射到TI1上
16. TIM2->CCMR1 |= 1<<8; //输入模式,IC2FP2映射到TI2上
17. TIM2->CCER |= 0<<1; //IC1不反向
18. TIM2->CCER |= 0<<5; //IC2不反向
19. TIM2->SMCR |= 3<<0; //所用输入均在上升沿或下降沿有效
20. TIM2->CR1 |= 1<<0; //使能计数器
21. }
下一篇:STM32编码器开发设置笔记
史海拾趣
|
FCS是由PLC发展而来的;而在另一些行业,FCS又是由DCS发展而来的,所以FCS与PLC及DCS之间有着千丝万缕的联系,又存在着本质的差异。本文试就PLC、DCS、FCS三大控制系统的特点和差异作一分析,指出它们之间的渊源及发展方向。 摘 要: ...… 查看全部问答> |
|
本人在做一个硬件项目的软件方面的东西,现在遇到一个问题,请求解决。 是一个主板连接一个MCU,由MCU控制内存的电压调节或超频从而测试内存的性能。 现在要在DOS下,使用MCU去超频。假如死机,利用superIO的watchdog功能,发出一个信号告诉MCU, ...… 查看全部问答> |
|
关于用JLINK调试博创UP-TECH2410板子目标板自动重启的问题的解决方法 问题是这样的大概一个月前,我在IAR6.1上建了一个S3C2410的工程,我这边有两种板子,一块优龙FS2410板子,两块博创UP-TECH2410的板子,对应的也有两种调试器,优龙的使用的是DragonJtag,一端跟电脑的并口相连接,一端连接板子的JTAG接口,优龙的板 ...… 查看全部问答> |
|
XDS510 100元 KL05Z 开发板,全新. 50元 串口服务器,全新,带光盘. 50元 M动力 F28035开发板,加焊485芯片 100元. 测试样品 推挽正激加并网. 200元. ...… 查看全部问答> |
|
如何利用MSP430对一个4-20mA信号与给定值进行比较,然后驱动灯泡亮灭,并将信号给上位机。 是利用MSP430的比较器呢?还是如何操作?谁能给个思路?谢谢!!!!! \0\0\0eeworldpostqq… 查看全部问答> |
|
自己焊了个板子,本来运行好好的,突然程序配置不成功了,测量发现1.2V只要一上电就会短路,最后把1.2V电源芯片下掉也是这个问题,3.3V一接通,1.2V的引脚跟地就短路,是什么问题???按理说不上电时1.2 V对地电阻是120欧左右,3.3V对地是330欧左 ...… 查看全部问答> |




