你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于MC SDK5.0 状态的切换,任务3

[复制链接]
freeelectron 发布时间:2018-9-2 18:18
本帖最后由 freeelectron 于 2018-9-2 18:17 编辑
/ [# z1 w1 m+ c- ~! a
! [' X5 Y: Q* i; b" i4 w3 G        通过任务3:主要学习电机反转指令,调用函数知道当前电机运行状态,清除报错,电机回到IDLE状态 。
: i# T  Y5 c/ e1 H: l, P
99.png
5 s& y) k& e- [
代码说明:参考了论坛大佬的代码
  1.   /* USER CODE BEGIN 1 */
    0 w6 b" p0 ?2 O- ?, w; n; U
  2.   State_t sts_motor1;
    ( W# S  z  B) `; I6 E: O
  3.   /* USER CODE END 1 */
复制代码
  1. /* USER CODE BEGIN 2 */
    1 X/ m  H/ u- o3 X  k
  2. MC_ProgramSpeedRampMotor1(-3000/6,1000);//负转3000RPM" ^4 _0 w3 j9 @: y! u7 ]
  3. MC_StartMotor1();# n: Q4 f2 k" q* t4 e0 ~  z
  4. HAL_Delay(10000);$ Q* m& d  Q. x  L) U$ s/ z
  5. MC_ProgramSpeedRampMotor1(3000/6,1000);//正转3000RPM
    ( N- L) s5 ^. G9 ~( o" V' c
  6. /* USER CODE END 2 */3 T0 q. s% F7 R- V
  7. ' l4 I9 R/ R; |1 ]7 K9 w* _! q
复制代码
  1.   /* USER CODE BEGIN 3 */
    9 s8 N0 r  T% J3 ^& @
  2. 2 m' L7 `  w" |
  3.                
    " A: {% U/ Q8 g% ?8 F) S6 H
  4.    sts_motor1 = MC_GetSTMStateMotor1(); //返回 Motor 1 状态机当前的状态) t# i2 W& y* P  o( ?
  5.     if(FAULT_OVER==sts_motor1)        
      z' ]" a& X: u; d" U
  6.                 {                        $ K4 @% J. a* i6 _2 [5 T4 S" C0 o8 e
  7.                    MC_AcknowledgeFaultMotor1();
    8 z# p: F. Q) a# e
  8.                 }& T6 T$ y, f4 m! k  m
  9.                 else: j5 @5 |" N* y. j% e( |, k
  10.                 {
    # U; ?0 }2 V/ V: q& q+ t
  11.                         if(IDLE==sts_motor1)
    , {6 T: i7 c6 G8 O4 [0 m
  12.                         {
    ) S1 D3 N+ l6 n' p9 \
  13.                                  MC_StartMotor1();
    , m/ {3 q. w  N3 n0 u( s
  14.                                  MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 1000);//最后一次设定的速度
    * M) q/ ]& C3 X8 f% D4 [$ E* l
  15.                         }( {- {1 D4 N  @+ K! F, }+ L
  16.                 }  X& z; X  C/ K
  17.                  ) N% G. f1 l& Q' ^2 O
  18.   }& V: m: A  l6 V8 {  q- Y$ Q
  19.   /* USER CODE END 3 */
复制代码

7 y7 g( h  h/ E, S$ P
查看速度波形文件:& L' i! \1 H4 }: U5 R% v+ @9 W9 N
88.png 5 s$ o6 T& ?$ l4 U, `( D' E$ _4 I
MC_AcknowledgeFaultMotor1();
函数说明:应答 Motor 1 发生过的故障。用户调用这个函数前,如果电机发生了故障。电机将停留在FAULT_OVER状态,并保留故障代码。在调用了这个函数之后,状态机将清除故障代码的记录,并恢复到 IDLE 状态。$ ?5 r0 ~/ ?' t6 j6 R& C3 d6 F8 I; r
0 I5 r( V  \% ~+ B' k4 |  s/ c8 ~
电机常用的几种状态:
: |7 G$ m) m. g) U, _- k5 N
77.png : X) |/ Z3 Q1 b. S9 x3 j* c
收藏 2 评论8 发布时间:2018-9-2 18:18

举报

8个回答
子曰好人 回答时间:2018-9-2 23:06:01
指正一下楼主,图中第二个黄色框有一部分是转速突然切换到3000rpm造成的,后面白色线段开始上升是因为这时候已经清除错误报警,进入重新启动阶段了,至于为什么红色线段没有及时更新至+3000,这个我不太清楚,可能是串口发送那一部分丢帧了
freeelectron 回答时间:2018-9-3 08:33:50
子曰好人 发表于 2018-9-2 23:06
% Z. \8 I) F5 ]指正一下楼主,图中第二个黄色框有一部分是转速突然切换到3000rpm造成的,后面白色线段开始上升是因为这时 ...

7 M6 k* l* V  u' h9 I嗯嗯,谢谢指正
hxw8624 回答时间:2018-9-3 14:29:34
666666666666666
hxw8624 回答时间:2018-9-3 14:29:56
6666666666666666666666
hxw8624 回答时间:2018-9-3 14:30:35
66666666666666666
ztx2168 回答时间:2018-9-28 20:12:12
谢谢楼主
liujunfy527 回答时间:2018-10-28 10:27:14
谢谢分享
owen94 回答时间:2019-4-9 21:51:21
感谢楼主!!!!

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版