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

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

[复制链接]
freeelectron 发布时间:2018-9-2 18:18
本帖最后由 freeelectron 于 2018-9-2 18:17 编辑 7 F7 v2 n1 R+ D  `6 ]! k' ]* B9 D# Q# l
* o' T: L& w0 Q+ n+ _
        通过任务3:主要学习电机反转指令,调用函数知道当前电机运行状态,清除报错,电机回到IDLE状态 。0 u4 {, p5 f' Y8 O2 J6 ]) {$ S1 S! W
99.png 6 l, {$ Y5 v  ~
代码说明:参考了论坛大佬的代码
  1.   /* USER CODE BEGIN 1 */  x( B/ e' P5 }% Y" ^& b: k% s3 I
  2.   State_t sts_motor1;& p" u& j- T- x& J- \
  3.   /* USER CODE END 1 */
复制代码
  1. /* USER CODE BEGIN 2 */7 s, l4 c. g) L
  2. MC_ProgramSpeedRampMotor1(-3000/6,1000);//负转3000RPM
      t8 G2 j* G/ i9 n8 G
  3. MC_StartMotor1();
    . V' D/ A7 n9 \
  4. HAL_Delay(10000);
    7 O) Z; C/ ~6 W- j7 E# L' I
  5. MC_ProgramSpeedRampMotor1(3000/6,1000);//正转3000RPM
    6 e. m5 c6 x7 f
  6. /* USER CODE END 2 */4 E& Z- v7 c: }3 T- l( y# L

  7. 5 w' Y8 N0 @- ?4 L" p8 Q9 Y
复制代码
  1.   /* USER CODE BEGIN 3 */4 I/ t/ j* L7 {$ |4 M6 k" V
  2. 2 g. s$ f1 ?# t6 P
  3.                
    0 d) M! Y+ t7 W( r, j1 _4 `# b
  4.    sts_motor1 = MC_GetSTMStateMotor1(); //返回 Motor 1 状态机当前的状态* Z( r3 \0 t; `4 g; U; d; y5 X( e
  5.     if(FAULT_OVER==sts_motor1)        5 A$ g" E8 }# Y$ E
  6.                 {                        * A+ y2 w3 [- @6 x% v
  7.                    MC_AcknowledgeFaultMotor1();- \# z- H( U. D. |4 V
  8.                 }
    . U) H  w1 y, g( b4 j& [
  9.                 else- X6 _& y/ R3 t0 _
  10.                 {5 [1 I- E& e9 E; V: A; V1 M
  11.                         if(IDLE==sts_motor1)
    # b4 W6 o: N  v# H
  12.                         {) c, x, j: \2 C3 I
  13.                                  MC_StartMotor1();) T( \1 t7 l& q! V: D# F$ C! Z
  14.                                  MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 1000);//最后一次设定的速度0 ^+ S: v( L  ^; o7 p) U/ {
  15.                         }
    ( B7 m3 `# \7 q0 w8 Z: ?! e
  16.                 }
    - ^6 U# P: B& {6 G4 l8 R
  17.                  % Q* \3 U) R$ t1 H  B: B5 e
  18.   }
    ' ?: T* N0 i4 {" e
  19.   /* USER CODE END 3 */
复制代码

! m. U$ Q( ^- W. t/ m
查看速度波形文件:( Z: l" _& l8 W6 n; }7 ~  t; \$ U
88.png
; p7 v0 Q/ I% ]& W$ {4 J, F
MC_AcknowledgeFaultMotor1();
函数说明:应答 Motor 1 发生过的故障。用户调用这个函数前,如果电机发生了故障。电机将停留在FAULT_OVER状态,并保留故障代码。在调用了这个函数之后,状态机将清除故障代码的记录,并恢复到 IDLE 状态。# f& H* d7 @/ P$ n7 L0 w. D5 A5 X
7 Z% J0 d) A: [6 F* v
电机常用的几种状态:
* T: Y9 n& z( S* ~3 l& q( l# d
77.png 1 Y: g% R* C! j/ V
收藏 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) o$ H$ U: S! R. D
指正一下楼主,图中第二个黄色框有一部分是转速突然切换到3000rpm造成的,后面白色线段开始上升是因为这时 ...
& i" m: F  J* g* W# C: E8 c; k# N
嗯嗯,谢谢指正
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 手机版