发 帖  
原厂入驻New
[问答] 小白请教一下关于STM32F429控制舵机问题
705 STM32
分享
想要实现一个按下KEY0键使得舵机正转180度,松开停止;按下KEY1反转180度,松开停止的功能。
但我的结果是按下按键大概能正常平滑地转动一段角度,然后就一抽一抽的,给人的感觉好像是卡住了。松开按钮也没有能够停止。上网搜索也没有结果,麻烦各位大佬们帮忙看一下,十分感谢!
代码如下:int main(void)
{
   //  u8 dir=1;
   // u16 LED0pwmval=0;  
// u8 len;
u8 key;
int i;
//u8 a[10]={'0','1','2','3','4','5','6','7','8','9'};
//int i;

    HAL_Init();   
    STM32_clock_Init(360,25,2,8);   
    delay_init(180);  
    KEY_Init();                     //³õʼ»¯°´¼ü
   tiM3_PWM_Init(200-1,7200-1);
    while(1)
    {
  key=KEY_Scan(1);
  switch(key)
    {
     case  KEY0_PRES:
      while(key!=0)   //0就是松开按钮
   {
        for(i=175;i<195;i++)
        {      
          TIM_SetTIM3Compare4(i);
           delay_ms(50);
        }
     }
        break;
     case KEY1_PRES:
      while(key!=0)
     {
      for(i=195;i>175;i--)
         {      
               TIM_SetTIM3Compare4(i);
                delay_ms(50);
          }
     }
     break;  
   }
}  

}


0
2019-11-22 17:39:34   评论 分享淘帖 邀请回答
2个回答
2019-11-22 18:30:36 1 评论

举报

1 条评论
  • 2019-11-22 19:47

    嗯嗯,硬件没有问题,之前没有设置按键的时候让舵机正常转动过的

示波器看下控制波形,一抽一抽的应该是 夹杂了 错误的控制信号
2019-11-27 11:50:08 1 评论

举报

1 条评论
  • 2019-11-28 18:47

    仁兄见地清晰,先把问题点找到。另外我没看到你停止PWM输出的代码啊,那岂不是一直在输出方波?

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

我要提问
关闭

站长推荐 上一条 /10 下一条

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