This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28069M:如何通过按下键来控制电机的前进和后退?

Guru**** 2573095 points
Other Parts Discussed in Thread: DRV8305

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/825334/tms320f28069m-how-to-control-the-motor-forward-and-backward-by-pressing-the-key

器件型号:TMS320F28069M
主题中讨论的其他器件:DRV8305

尊敬的先生:

我使用 基于 lab11e 的 F28069M 和 DRV8305来控制电机、我想 通过按键控制电机的正向和反向旋转。 但是、在我在 lab11e 中添加了以下程序后、它不起作用:

void key_control (void)(空)

   key_s1 = HAL_readGpio (halHandle、(GPIO_Number_e) HAL_keyGpio_1);
   key_s2 = HAL_readGpio (halHandle、(GPIO_Number_e) HAL_keyGpio_2);
   Key_S3 = HAL_readGpio (halHandle、(GPIO_Number_e) HAL_keyGpio_3);
   if (HAL_readGpio (halHandle、(GPIO_Number_e) HAL_keyGpio_x)==低电平)
   {
       usDelay (50);
       if (HAL_readGpio (halHandle、(GPIO_Number_e) HAL_keyGpio_x)=低电平)
       {
           while (HAL_readGpio (halHandle、(GPIO_Number_e) HAL_keyGpio_x)=低电平);
           返回低电平;
       }
       其他
       返回高电平;
   }
   其他
       返回高电平;
   while (1)
   {
       if (key_s1==低电平)
           {
            gMotorVars.SpeedRef_KRPM = 0.8;
           }
       if (key_s2=low)
           {
               gMotorVars.SpeedRef_KRPM =-0.8;
           }
       while (1)
       {
           if (key_s3=low)
              {
                 gMotorVars.SpeedRef_KRPM = 0.8;
                 usDelay (500);
                 gMotorVars.SpeedRef_KRPM =-0.8;
                 usDelay (500);
              }
       }
   }
1、我编写的程序是否有问题?  如何 通过按键控制电机的前进和后退旋转?
2、在哪里可以更改参考速度? 我已将其更改为0 斜坡、但 在表达式窗口中、它仍然 显示1800斜坡。
3、 gHall_GpioData =(~HAL_readGpio (halHandle、(GPIO_Number_e) HAL_HallGpio_C)& 0x1)<< 2;
gHall_GpioData 的结果是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    正如我们在您的另一篇文章中答复的那样、您只需添加自己的代码即可检查密钥输入、而无需更改原始 lab11e 中电机控制算法的任何内容。 根据 KEY 的输入信号、将基准速度(gMotorVars.SpeedRef_KRPM)设定为一个正或者负值来进行前转或者反转旋转。

    您似乎没有考虑按键输入信号上的噪声、并且控制逻辑也不正确。 我建议查看一些 MCU 编程手册、尽管我 没有特定的编程手册。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yanming

    感谢你的答复。

    一些 MCU 编程手册可能对我有用。 您会给我一些列表吗?  中国书籍更好