接上一节内容,目前已经配置好了按键和LED灯控制、串口和显示屏配置、ADC和DMA的配置
生成后的代码将移植到之前的项目中,移植方法和之前一样
1 CubemxTIM配置输入捕获
由于我们使用驱动接口1连接PMSM
采用定时器3的CH1-CH3通道
CH1和CH2位AB相CH3为Z相,对应芯片管脚PC6,PC7,PC8
在选择好通道后,配置TIM3
这里选择编码器模式,该模式可以直接读取脉冲数(不用特意设置捕获了,非常方便)
channel3作为脉冲中断触发,找到每一圈的零点位置
野火电机编码器是1000线的(转一圈1000个脉冲),这里4分频后变4000脉冲
配置TIM的中断
生成代码
2 函数配置
这里有几个函数需要配置
1.开启编码器模式函数
2.设定时定计数器的值
3.打开TIM3通道3中断
4.中断回调函数
当编码器Z相出脉冲时进去中断,即可知道编码器到达零点
通过下面的函数就知道编码器的脉冲数,即可算出电机的位置
可以通过之前配置的串口打印当前的计数值