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

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

[复制链接]
damiaa 发布时间:2018-8-31 16:56
本帖最后由 damiaa 于 2018-9-3 09:44 编辑
/ w3 L/ _4 }) Y% ^/ R: Y
% W3 d5 ~- g' B【STM32电机培训online】+ P-NUCLEO-IHM002电机正反转  E3 X* T7 f9 ]. U# B: M2 o
1,在上篇的工程代码中加入函数:
' [- t+ n9 [2 C: W4 Uvoid task3(void)//
2 y% b* D, }  j{
9 Y$ ]3 b; e& P/ Z7 Y  U            MCI_Handle_t* pMciHdl = GetMCI(M1);
8 R  N8 X+ r! v* t            HAL_Delay(5000);
: l. R# ^# l8 T5 a8 @: W            MC_ProgramSpeedRampMotor1(3000/6,3000);  ^; ]" o5 u4 \( R! t- O6 w4 S# o
            MC_StartMotor1();//7 E5 k2 Y% w: `7 l1 K
            HAL_Delay(5000);2 Q1 L( Z! K8 z) K2 [/ C+ ~
            MC_ProgramSpeedRampMotor1(-3000/6,3000);
2 I& Y2 O  A# L/ ~! }3 {            uint16_t sts_motor1 = MC_GetSTMStateMotor1();
) x" ]( G8 \' U) Y% x8 B6 b( J& T            uint16_t oSTM = MC_GetOccurredFaultsMotor1();            //下面是测试的一些函数,暂时留在这里做参考用。( P# Q3 U2 _. Z" D. |
           //uint16_t MC_GetImposedDirectionMotor1(); / ], P5 o  {! b/ V0 Q% m( y4 G
          // MC_AcknowledgeFaultMotor1();
# _" w9 g. e* c          //MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 3000);: L/ c0 {; v% A
         //MC_ProgramSpeedRampMotor1(-3000/6, 3000);
/ o9 Y1 M: n5 w/ v9 D         //  MC_StartMotor1();
. E# @% @0 N5 N" x) V- l* ]- V        while(1)0 W, K7 `3 B4 A3 s+ {0 {
        {& |! S3 V' }7 I6 o4 p6 b1 J( [

, Q( m; u9 Z: @/ _* M6 i4 B* f              HAL_Delay(5000);     
5 K2 d+ \) a' X) e( ?; Q$ m2 h, a             uint32_t F_Type = MC_GetOccurredFaultsMotor1();//# ^  v2 u5 ~( ~" t- M
              //if(F_Type == MC_SPEED_FDBK)
% D2 q9 `/ Z3 T2 n0 Q' ~               {
+ [: j1 `; R( C6 A/ ?* v6 I                     MC_AcknowledgeFaultMotor1();! J4 \, L: \, K; t% c6 K2 n
                    //MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 3000);, T- x2 ]5 h5 T0 W* v4 D
                    MC_ProgramSpeedRampMotor1(-3000/6, 3000);# }8 X" k7 g" \$ }
                    MC_StartMotor1();9 I6 S" L! k# D2 I
               }' _0 [& H( k5 n! K) i
         }
- k. A4 A, [& B! ?4 P7 ?3 s/ C2 L2 K}        ( _  p( i2 o) D- J7 B/ ]
- f7 Y# j9 ]5 c: T5 a2 ]

9 m6 B$ U. e# p2,在main.c中前面加入:" B: Q& H- H' ?& u& M4 s
       extern MCT_Handle_t* GetMCT(uint8_t bMotor);
* l) s, }. F% d% Q) A7 |( ]       extern MCI_Handle_t * GetMCI(uint8_t bMotor);
! x' ^4 A6 w+ y1 V0 {9 K& v       extern STM_Handle_t STM[1];
, h. I+ w) d3 o- O* O4 p+ V, T# q* S6 J6 M
3,在main.c中调用task3(),编译运行。7 J2 W; r1 f* p9 c  Y
4,监测。2 B* C3 K0 N( j+ q2 E" Q' Y' e
    可以看到电机正转到3000了停下来,然后反转。, |$ V$ X4 k, e" O7 h0 S# y* ?
    如果没有MC_AcknowledgeFaultMotor1();加入,反转不了。
  v, h6 ]& T5 G% {9 Q' |
: x0 f+ k, e& B" K! u0 u2 l, `  i9 N0 h; y8 ]! W
捕获27.PNG 捕获26.PNG
9 J6 [/ c$ L) I# }具体再实验加入细节。, c& }3 L. j2 r0 V4 M

  ?+ a+ K. s7 d" q9 `: J$ `! e6 @9 n& S, C5 T) e

; d4 [2 Q/ U! @, O
收藏 评论2 发布时间:2018-8-31 16:56

举报

2个回答
子曰好人 回答时间:2018-8-31 17:56:40
楼主代码风格比较凌乱呀,好多注释了的代码,虽然对于经常见到代码的我们来说不是大问题,但还是希望楼主贴出比较简洁的代码,另外发帖的时候用上专门放代码的控件,这样看起来美观一点
: i' g8 U( b5 Y6 p/ @- k, A/ i经验分享不错,点个赞
damiaa 回答时间:2018-9-1 17:33:06
子曰好人 发表于 2018-8-31 17:56! q0 C% P0 f( w
楼主代码风格比较凌乱呀,好多注释了的代码,虽然对于经常见到代码的我们来说不是大问题,但还是希望楼主贴 ...

& p7 m. D( ]) E好的,谢谢 提醒

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版