本帖最后由 巅峰残狼 于 2017-8-26 15:00 编辑 * I: a1 H* l, _. [! q, x 目的:学习ST的电机6步换向算法控制方法 8 y* M% p; |5 E# _ 学前准备: 软件:ST电机软件包en.X-CUBE-SPN7(X-CUBE-SPN7). y0 z D5 I6 o, b9 B, l6 K 硬件:P-NUCLEO-IHM002套件(含控制板+电机驱动板+电源适配器)- h! c( L; q& ?2 Y% a 一、下载ST电机软件包en.X-CUBE-SPN7; k. T+ l8 b9 T+ k+ ?9 I 二、解压后,按照路径C:\Users\111\Desktop\ST社区电机资料下载\硬件\en.X-CUBE-SPN7\STM32CubeExpansion_SPN7_V1.1.0\Projects\Multi\Examples\MotorControl\MDK-ARM\STM32F302R8-Nucleo,这个路径下的工程就是基于STM32F302R8的6步换向算法的工程文件,打开工程结构如下:+ V1 f. ]( ?6 v: c: z- j 三、打开User下拉文件,即可看到此工程的main函数,我们即将在main函数中实现我们电机的简单控制 四、先定义一个全局变量num,用来记录按键的次数,在main函数的用户代码区,写入如下代码: switch(num)/ } O$ d: r1 L5 W8 l8 z6 W0 s1 ^ {7 P- j1 F* ~' s" ^" k+ j1 \9 ` I' ^3 ] case 0:) y7 f& a) c/ b, j- Z0 c2 h/ C MC_StopMotor();//电机停止 break; case 1:8 C$ n/ G: J" z5 N! G MC_StartMotor();//电机启动! _! j4 K; b0 X break; case 2:" b& y/ j8 K3 W, `7 A& D G+ {3 J! v MC_Set_Speed(3000);//设置电机速度值为3000转每分钟2 L% V' ^+ L4 ~ break; case 3:+ z# d8 x& o, J3 h; h& J( a MC_Set_Speed(6000);//设置电机速度值为6000转每分钟 break;- I/ I6 K8 V" j4 Q/ u case 4:0 v4 H! e5 n" x MC_Set_Speed(9000);//设置电机速度值为9000转每分钟5 V0 ^) S. ^' @4 b7 k' j% h7 D" N break; default:break; } 3 h& P+ d0 m1 m6 M- u$ V 在外部中断函数EXTI15_10_IRQHandler(void)中按照如下编辑' Y L2 g' l* u7 o( i5 O. b) @) ^ , A6 ]% V" Z% X7 |/ X7 d void EXTI15_10_IRQHandler(void) {. _# v2 u/ t$ r8 a+ C: V /* USER CODE BEGIN EXTI15_10_IRQn 0 */2 c# p! U- @+ `$ G /* USER CODE END EXTI15_10_IRQn 0 */! X3 ?; b1 s6 L- Y HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);//清除中断标志位 /* USER CODE BEGIN EXTI15_10_IRQn 1 */* [$ U& K( n4 N9 Y num++;//每次中断加一,即没按下一次用户按键加一 if(num > 5)//当累加次数为5次时,记录值清零$ k. i. Y7 ^% F { num=0; } " U. d6 U; Q0 S( ?0 x /* USER CODE END EXTI15_10_IRQn 1 */ } 五、上述程序编译后,下载到我们的控制板,给电机驱动板上电,电机连接好后,即可实验我们所要的功能,即 第一次按下:启动电机 第二次按下:电机速度设置为3000转/分钟- I K) b( ]& [* W 第三次按下:电机速度设置为6000转/分钟 第四次按下:电机速度设置为9000转/分钟: {8 R4 C: J; I, p& R 第五次按下:电机停止六、电机控制库,提供了关于电机的大部分控制函数,方便用户调用,即使对电机不甚熟悉,像我这种小白,也是很快就可以实现电机的转动控制,是不是相当方便?4 t' m0 B- A7 T" {' g2 `) g# j- X 5 v L5 e X8 @1 g A , @( h& z2 @2 D8 j 5 G4 X# _; E! O/ K) d * _: Y9 s M4 g! C+ u |
STM32F302R8-Nucleo.rar
下载6.29 MB, 下载次数: 884
请问 HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);//清除中断标志位 这个函数是在哪里定义的呢? |
没有程序 空壳一个 |
为何我打开后里面没有源码的了 |
多谢分享! |
!!!!!!!!!!!!!!!! |
谢谢分享 |
谢谢分享 |
谢谢楼主分享。谢谢 |
谢谢 |
mark# c: B' u( Q# h7 L/ C8 q0 E |
不错啊,学习下6步换向算法 |
谢谢分享 下载了先保存 |
谢谢分享% b$ ]# F, |8 z4 ?, ^ |
看看看,, |