1 平台概述
2功能特性
3软件设计
4 可扩展性
5 其它资料
1平台概述
主控芯片:stm32f103zet6
编码器模块:TEPS3806-100B-P526增量型编码器系列
2功能特性
STM32F10x的所有通用定时器及高级定时器都集成了正交编码器接口。定时器的两个输入TI1和TI2直接与增量式正交编码器接口。当定时器设为正交编码器模式时,这两个信号的边沿作为计数器的时钟。而正交编码器的第三个输出(机械零位),可连接外部中断口来触发定时器的计数器复位。
正交编码器的输出信号A和B分别连接MCU的PA8和PA9管脚,这两个管脚复用为TIM1_CH1及TIM1_CH2。要注意正交编码器的AB信号电平根据其输入电压的,所以要保证AB接入MCU的电平不超过5V,否则会损害主芯片引脚的,所以需要加电平转换。如光电隔离,74LVC14等。
3软件设计
软件流程包括硬件功能初始化和应用接口调用。(详细代码见附录一)3.1初始化函数
void InitializeEncoder(void);
功能说明:主要是初始化硬件编码器功能,比如编码器模式,使用定时器模式选择等
3.2API调用函数:
s16Enc_GetCount(void);
功能说明:函数返回编码器的变化量,如果在应用层每10ms调用一次,那么就是10ms期间的变化量,这样在应用层就可轻松的扩展到32位计数了。(前提是确保在变化期间内编码器计数变化值不会溢出)
4可扩展性
由于我的应用中只需要获取编码器的值就可以了,其实还可以用于计数运行速度,这个作为可扩展方面留后续增加。
5其它资料
1:《STM32F10xxx正交编码器接口应用笔记》.pdf
2:stm32正交编码器学习.docx