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

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

[复制链接]
damiaa 发布时间:2018-8-31 16:56
本帖最后由 damiaa 于 2018-9-3 09:44 编辑   J$ F$ C9 d) \
3 J& w+ D8 @$ J( {$ T2 O; a
【STM32电机培训online】+ P-NUCLEO-IHM002电机正反转
9 F$ _1 j9 T; p% R1,在上篇的工程代码中加入函数:
4 |! X1 Z2 [" nvoid task3(void)//
( [$ F. H4 i* w" K- C9 P7 n{
4 j" N% h2 M: b* T' z# \            MCI_Handle_t* pMciHdl = GetMCI(M1);
; q5 u7 e4 \; C2 d; J( d+ d6 j( q            HAL_Delay(5000);
6 ~7 t. _/ M' n. V  Z3 Q            MC_ProgramSpeedRampMotor1(3000/6,3000);
8 Y6 j8 ^# P! r) O( t) j            MC_StartMotor1();//- c% \# I# B( U- s- ~1 a. Q
            HAL_Delay(5000);
0 ?0 r4 {! X, w* X2 a            MC_ProgramSpeedRampMotor1(-3000/6,3000);$ h0 q6 D* N% m; _- K8 n8 o
            uint16_t sts_motor1 = MC_GetSTMStateMotor1();
: J9 s8 G9 H& a  j' D            uint16_t oSTM = MC_GetOccurredFaultsMotor1();            //下面是测试的一些函数,暂时留在这里做参考用。& M9 v) n& v" [4 Y3 x3 ]& J
           //uint16_t MC_GetImposedDirectionMotor1(); & V- s" h$ ]! C# p. l0 B5 |
          // MC_AcknowledgeFaultMotor1();0 E- Q, |2 }+ u; w5 D& E! Y! a
          //MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 3000);
" ?4 o6 x7 t+ j) W4 g         //MC_ProgramSpeedRampMotor1(-3000/6, 3000);& ^9 P" J# I' L) \4 u+ S3 ^
         //  MC_StartMotor1();
0 x, ~/ e" Y4 q; J# [        while(1)& ]9 e5 X1 y( W) m- j
        {
2 A# F% L2 q8 U& H. W2 ^# I6 j: F+ Y+ f( n# u, L+ v
              HAL_Delay(5000);     
- k9 q' G" f. l0 g5 o% A; y             uint32_t F_Type = MC_GetOccurredFaultsMotor1();//
3 h% ?- v4 s- ]              //if(F_Type == MC_SPEED_FDBK): v4 L& W8 |9 u- f* z9 b) ~- e" ?
               {5 f1 F. L/ {0 L8 ?( i8 d
                     MC_AcknowledgeFaultMotor1();
, Z6 A+ w6 i/ `                    //MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 3000);) F0 K  o/ E) w$ K8 H
                    MC_ProgramSpeedRampMotor1(-3000/6, 3000);
5 E% R& Y: }, c8 x/ N2 {5 z+ x7 d                    MC_StartMotor1();
# o" z3 e9 ^. B4 q/ e9 x- I& q( A               }
9 a8 v4 j/ S3 ?# ~9 O7 ]* [         }8 G+ i7 L8 J/ x. F
}        
- N0 \- \0 G6 C4 A2 p  ^9 r: h7 w
/ u, C7 w# [' a! \7 w, F
2,在main.c中前面加入:4 B, I- c4 i! q
       extern MCT_Handle_t* GetMCT(uint8_t bMotor);$ _/ J) Z7 K; p2 s5 ^: ^
       extern MCI_Handle_t * GetMCI(uint8_t bMotor);
# q. H+ r1 q& f! \       extern STM_Handle_t STM[1];
4 Y, d4 f; {( M7 X+ V5 M: _  t5 q
3,在main.c中调用task3(),编译运行。
( B3 F6 e) H1 S$ x6 F+ s4,监测。
, N; J. }% y7 Q$ V* {% \1 Q  R    可以看到电机正转到3000了停下来,然后反转。' d2 I  M0 w7 [6 B2 X1 t
    如果没有MC_AcknowledgeFaultMotor1();加入,反转不了。
; l8 S+ ~2 X4 M0 w
5 W1 E5 q5 Q* W  V: t. p3 ^/ B5 [/ y1 n4 x. K! r/ o9 r
捕获27.PNG 捕获26.PNG 7 [' O3 n+ j' t. W, x
具体再实验加入细节。8 B4 `1 P( ]% {5 U
! A0 `. O5 ~# j2 l7 s
7 Y% ]9 r. k2 b  S' o! k
! _! y6 g5 |* _3 T4 z. D
收藏 评论2 发布时间:2018-8-31 16:56

举报

2个回答
子曰好人 回答时间:2018-8-31 17:56:40
楼主代码风格比较凌乱呀,好多注释了的代码,虽然对于经常见到代码的我们来说不是大问题,但还是希望楼主贴出比较简洁的代码,另外发帖的时候用上专门放代码的控件,这样看起来美观一点
9 H: P* q0 f9 B( ]5 f% ]8 {经验分享不错,点个赞
damiaa 回答时间:2018-9-1 17:33:06
子曰好人 发表于 2018-8-31 17:56% s1 O% B$ I" q# ]$ t0 c$ ?) g
楼主代码风格比较凌乱呀,好多注释了的代码,虽然对于经常见到代码的我们来说不是大问题,但还是希望楼主贴 ...

6 i- _1 ~6 u& u1 s好的,谢谢 提醒

所属标签

相似分享

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