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

【STM32电机培训online】+ P-NUCLEO-IHM002电机正反转

[复制链接]
damiaa 发布时间:2018-8-31 16:56
本帖最后由 damiaa 于 2018-9-3 09:44 编辑
+ n$ n4 q: ~; W# y
$ N& ^! v1 {0 s, h3 U【STM32电机培训online】+ P-NUCLEO-IHM002电机正反转
6 G9 n! e  f+ F1 F9 z& @1,在上篇的工程代码中加入函数:
# u) U5 \3 U6 p/ O* P2 ]/ g& Z; mvoid task3(void)//+ u4 h2 e8 p6 _
{; Y- F; r3 O6 m9 i. Q  w0 G/ X$ o
            MCI_Handle_t* pMciHdl = GetMCI(M1);
/ h6 L' h: p" N% c            HAL_Delay(5000);* D/ S$ ]2 ~( F% G
            MC_ProgramSpeedRampMotor1(3000/6,3000);* c+ N1 d$ t% m8 c, z7 M- m
            MC_StartMotor1();//4 _' m; ]/ H7 d+ F3 W" A7 ^+ r' Q
            HAL_Delay(5000);
% w+ W* N5 U) |2 B. F3 j            MC_ProgramSpeedRampMotor1(-3000/6,3000);
  g# W% ^& B- \, a2 @            uint16_t sts_motor1 = MC_GetSTMStateMotor1();
; x: N  z7 I* d/ v0 n1 R            uint16_t oSTM = MC_GetOccurredFaultsMotor1();            //下面是测试的一些函数,暂时留在这里做参考用。( ^+ B$ l+ x: v/ i5 D$ E
           //uint16_t MC_GetImposedDirectionMotor1(); $ }4 h1 U  O$ s3 t9 X
          // MC_AcknowledgeFaultMotor1();
$ ~% w2 d+ W! Y7 m8 F          //MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 3000);5 [: n; x+ p5 q: x/ t
         //MC_ProgramSpeedRampMotor1(-3000/6, 3000);8 n0 K0 m7 D+ e8 U6 E( \! _
         //  MC_StartMotor1();
& q# \1 G7 f6 T# g. o9 J' \. u        while(1)
/ e- c- C( I7 v- y& r- i        {& ~: _' b4 J/ f% ]5 s% B7 [0 j3 }
8 p" k; |$ z( S7 u: x0 S- ?
              HAL_Delay(5000);     ) d! F1 m- K" i0 J7 P8 P# x
             uint32_t F_Type = MC_GetOccurredFaultsMotor1();//7 v# \, @$ [* d: O+ q& a& X0 A
              //if(F_Type == MC_SPEED_FDBK)
3 P( f# i4 h5 @" n! Q/ L               {  y4 d3 y0 r9 }6 [# w6 O! u, B
                     MC_AcknowledgeFaultMotor1();
3 K7 h2 U+ B. X* ^+ J                    //MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 3000);: I8 `3 m& P4 i
                    MC_ProgramSpeedRampMotor1(-3000/6, 3000);; H: T$ q: a" H  N, B
                    MC_StartMotor1();
. j, k; y3 _7 s" J               }  d5 A% W. w* Z5 r: n/ c( O2 v
         }9 G; Q* Y8 h  z6 d+ q; f2 e7 i& t; ~
}          V7 ~# C9 J9 A7 W; S9 e
8 ?/ C+ R5 J; L
* M1 e5 @0 K5 @* K0 t' U. |1 q
2,在main.c中前面加入:3 n6 ^& m% I" w+ a& d$ y5 v
       extern MCT_Handle_t* GetMCT(uint8_t bMotor);$ w. P) ~6 b0 \+ `# V1 ~
       extern MCI_Handle_t * GetMCI(uint8_t bMotor);
( E$ B) ~6 D+ B# L; L       extern STM_Handle_t STM[1];7 G7 m2 H& _3 h5 {5 j

! q: B  d- F; Q; F. J6 [6 f% E$ v3,在main.c中调用task3(),编译运行。$ s9 i  q+ E+ _, j
4,监测。! }; s. }5 J4 M; g( H- [, E+ i0 [' c
    可以看到电机正转到3000了停下来,然后反转。
2 |5 |7 ^- a; k    如果没有MC_AcknowledgeFaultMotor1();加入,反转不了。
# t) L. @0 y3 Z0 f, X# l9 g. G$ \1 c2 A0 }

" |* a1 C  h  x9 }+ L3 w* D 捕获27.PNG 捕获26.PNG & g4 Y7 s8 X% K
具体再实验加入细节。- K* k1 r! _5 D! o
/ F# B$ Y+ M! V$ V' t
' X9 ]/ T3 s0 b3 p1 g- W

7 I. m& `$ g) l* s' W
收藏 评论2 发布时间:2018-8-31 16:56

举报

2个回答
子曰好人 回答时间:2018-8-31 17:56:40
楼主代码风格比较凌乱呀,好多注释了的代码,虽然对于经常见到代码的我们来说不是大问题,但还是希望楼主贴出比较简洁的代码,另外发帖的时候用上专门放代码的控件,这样看起来美观一点2 S" A. K$ F* ]) j2 Q
经验分享不错,点个赞
damiaa 回答时间:2018-9-1 17:33:06
子曰好人 发表于 2018-8-31 17:564 q5 C* z2 B* N; e, T1 `
楼主代码风格比较凌乱呀,好多注释了的代码,虽然对于经常见到代码的我们来说不是大问题,但还是希望楼主贴 ...
$ ^, Q: e- g( n3 A' ~
好的,谢谢 提醒

所属标签

相似分享

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