编码器A、B、Z相脉冲捕捉

本文介绍了如何使用STM32H745单片机配合编码器A、B通道捕捉脉冲,并利用GPIO中断实现Z相脉冲捕捉,以实现实时伺服电机控制和零点校准。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编码器A、B、Z相脉冲捕捉
STM32H745单片机+三菱伺服电机
此为个人笔记,如果对同道中人有帮助,欢迎借鉴;如果不喜勿喷;如果有错误欢迎指正。

1、捕获A相脉冲和B相脉冲
使用CUBEMX配置TIM1为编码器模式,这时会自动选择TIM1的channel1和channel2,这两个通道分别捕获A相脉冲和B相脉冲。这里为了捕捉到一个脉冲记一次数,不分频,且ARR=65535。

在这里插入图片描述
在这里插入图片描述
捕捉A相脉冲和B相脉冲的相关代码:
在这里插入图片描述
解释一下为什么我寄存器初始值是65535:因为伺服电机有正转和反转,我测试了我的电机,当正转时,寄存器的值是从0开始累加,反转是从65535开始减少。(这个仅限我自己的电机,我不知道其他的是不是这样)恰好我的研究就需要让他反转。

2、关于Z相脉冲的捕捉

使用的是一个GPIO引脚(PE13)的外部中断。根据外部中断的触发条件:外部信号的上升、下降或二者兼有触发中断。相关配置:
在这里插入图片描述
相关代码:
在这里插入图片描述
上面的代码是PE13引脚的中断回调函数。Z相脉冲主要就是为了伺服电机找零,所以当捕捉到Z相脉冲时停止运行驱动电机的PWM。建议在开启外部中断之前先清除一下标志位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值