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

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

[复制链接]
damiaa 发布时间:2018-8-31 16:56
本帖最后由 damiaa 于 2018-9-3 09:44 编辑
7 t' e! K4 z0 f  I$ A0 @2 E+ L, q6 G$ n
【STM32电机培训online】+ P-NUCLEO-IHM002电机正反转7 K6 e9 i7 }2 L
1,在上篇的工程代码中加入函数:5 C  j' O' x* R
void task3(void)//; Q: E; E$ ]# U* z# \' j: H; N
{
1 o& J9 A$ L2 v# {  w            MCI_Handle_t* pMciHdl = GetMCI(M1);$ B/ a& \6 R& }3 u8 q
            HAL_Delay(5000);9 {. W1 _  }: n2 j" ^& g0 m
            MC_ProgramSpeedRampMotor1(3000/6,3000);0 K$ p: h- Y2 V& c" _
            MC_StartMotor1();//
6 N7 w8 C/ e$ t8 [5 C9 p, y            HAL_Delay(5000);
* c$ C( X& Y  A3 e            MC_ProgramSpeedRampMotor1(-3000/6,3000);
# `; ~- Y0 ]% h- E  t            uint16_t sts_motor1 = MC_GetSTMStateMotor1();
7 _6 x- a+ l) F7 a            uint16_t oSTM = MC_GetOccurredFaultsMotor1();            //下面是测试的一些函数,暂时留在这里做参考用。1 c/ l. ]3 k+ u
           //uint16_t MC_GetImposedDirectionMotor1();
- c8 [. q& L/ N0 q3 }- O          // MC_AcknowledgeFaultMotor1();
# y3 [! [4 Y5 K4 L8 W          //MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 3000);
' \/ d+ G7 u, g$ ^1 Q3 ~         //MC_ProgramSpeedRampMotor1(-3000/6, 3000);( W& l: g  q( D
         //  MC_StartMotor1();
+ K9 c3 @! n6 x9 b4 e3 N3 |2 s. I        while(1)0 h$ p1 f( L& ~
        {$ j  W5 E+ D* l

$ x6 F8 z6 ~9 ~  O              HAL_Delay(5000);     ; y% |. P& h6 g9 h. l
             uint32_t F_Type = MC_GetOccurredFaultsMotor1();//2 h9 |4 o7 K) p; ]4 k, h# s; P
              //if(F_Type == MC_SPEED_FDBK)6 \" ~+ z- |! U9 @+ D8 O% e
               {) N9 I+ v+ ?* p" B, l- B
                     MC_AcknowledgeFaultMotor1();. u& x& m4 m7 ]4 g$ ]3 [
                    //MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 3000);3 _: C6 l: f8 I( h6 ]! k% \8 D! c1 @9 `
                    MC_ProgramSpeedRampMotor1(-3000/6, 3000);* y0 A, a7 j" r4 }# q/ Y1 t/ s% e
                    MC_StartMotor1();! e3 Z1 Q, H2 E9 d) ^- D. K; {
               }: V1 X* |* t5 E3 N( n/ D) R
         }
- I: i3 ?- C6 w5 J: ?( U3 D}        ! R9 \* v( f- R* s+ n1 ^
$ m/ _, ~. b) X% l; N
0 k; C+ F0 B$ N6 q: U
2,在main.c中前面加入:7 c+ w  j+ {, a. e- G
       extern MCT_Handle_t* GetMCT(uint8_t bMotor);7 W9 A  E, z' B4 [* e& i
       extern MCI_Handle_t * GetMCI(uint8_t bMotor);: r- G1 K$ R% A6 B% b% h1 `
       extern STM_Handle_t STM[1];
8 Y* R, M. ^1 p8 S9 M2 X! w, B3 K
3,在main.c中调用task3(),编译运行。4 ~* S" q& x8 d$ B) _
4,监测。" B& |: @& {4 L8 B1 `" S$ C5 _+ P
    可以看到电机正转到3000了停下来,然后反转。
; k  p' I8 E- f- M3 @/ o    如果没有MC_AcknowledgeFaultMotor1();加入,反转不了。
! l) |+ `# \3 L+ x) h1 ^6 M9 f8 l5 a' s2 J- l+ p# r$ `4 ^
" c* P( Y2 l4 M' i7 e
捕获27.PNG 捕获26.PNG
+ f) x+ b- {- T! E2 P2 e8 {/ \具体再实验加入细节。
4 f! c3 h1 O% Z" V4 y4 H- _
8 ^! I+ F# e5 M1 E+ x
, Y6 w4 s% Q( X* o  R; x- f. O: F7 R+ ~( b5 d
收藏 评论2 发布时间:2018-8-31 16:56

举报

2个回答
子曰好人 回答时间:2018-8-31 17:56:40
楼主代码风格比较凌乱呀,好多注释了的代码,虽然对于经常见到代码的我们来说不是大问题,但还是希望楼主贴出比较简洁的代码,另外发帖的时候用上专门放代码的控件,这样看起来美观一点% |0 f! z& E9 h) s6 Q* E
经验分享不错,点个赞
damiaa 回答时间:2018-9-1 17:33:06
子曰好人 发表于 2018-8-31 17:56! K& e" q8 I2 N" v+ X
楼主代码风格比较凌乱呀,好多注释了的代码,虽然对于经常见到代码的我们来说不是大问题,但还是希望楼主贴 ...

. }! b( K7 r! r4 ]好的,谢谢 提醒

所属标签

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