OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2923|回复: 4

编码器模式下,电机运动会停止,求原子哥指点

[复制链接]

16

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
290
金钱
290
注册时间
2019-9-4
在线时间
52 小时
发表于 2019-9-28 15:54:18 | 显示全部楼层 |阅读模式
6金钱
两个直流电机,使能位接在了一起,用于PWM的输出来改变速度,使用按键控制
电机二的编码器接在PD12 PD13上。
当电机通电后,电机二正常运作,但是每当电机二转过4圈左右,电机一会暂停,然后重新转动。

最佳答案

查看完整内容[请看2#楼]

原子哥我找到问题了 //回调函数,定时器中断服务函数调用 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim==(&TIM4_Handler)) { LED1 = !LED1 ; if ( (TIM4->CR1&0x0010) == 0 ) //向上计数溢出 { Interupt_Num++ ; } else //向下计数溢出 { Interupt_Num-- ; } } } 我用的别人的程序,改的时候忘记把LED1 = !LED1 ;这一句删掉了,真是个教训
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
290
金钱
290
注册时间
2019-9-4
在线时间
52 小时
 楼主| 发表于 2019-9-28 15:54:19 | 显示全部楼层

原子哥我找到问题了
//回调函数,定时器中断服务函数调用
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{

        if(htim==(&TIM4_Handler))
        {
                LED1 = !LED1 ;
                if ( (TIM4->CR1&0x0010) == 0 )  //向上计数溢出
                {
                        Interupt_Num++ ;
                }
                else //向下计数溢出
                {
                        Interupt_Num-- ;
                }               
        }
}
我用的别人的程序,改的时候忘记把LED1 = !LED1 ;这一句删掉了,真是个教训
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-9-29 02:24:16 | 显示全部楼层
仿真看看?
回复

使用道具 举报

16

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
290
金钱
290
注册时间
2019-9-4
在线时间
52 小时
 楼主| 发表于 2019-9-29 19:33:03 | 显示全部楼层

不会看仿真,调出来不知道看哪里
回复

使用道具 举报

16

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
290
金钱
290
注册时间
2019-9-4
在线时间
52 小时
 楼主| 发表于 2019-9-29 20:44:19 | 显示全部楼层

EMMMM 还有一个细节,我的电机一的IN1 接的是PBO也就是咱们429板子上第二个LED灯,这个灯也是一亮一灭,和电机一同步。
我换了一个IO口,然后可以正常运行了,但还是不太清楚为什么会这样。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 10:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表