ST FOC SDK5.0初步控制电机

2019-04-13 17:36发布

一、ST官方相关资源

  1. ST社区
  2. SDK5.0电机库的STM32电机控制应用实战培训
  3. STM32电机控制培训直播

二、软件工具及开发套件

1、软件安装

2、开发套件:P-NUCLEO-IHM001

3、使用过程中的注意事项 

以下都是实际操作过程中遇到的问题,注意下可以少浪费很多时间
  • 如果是win10的系统,将SDK默认安装到C盘,使用时需用管理员权限打开。使用IAR时,也最好用管理员权限打开
  • 使用前要将开发板跳线连好,IAR工程配置好   详情见文件:https://download.csdn.net/download/talender/10683761
  • IAR的optimization只有设成high或median时,才能正常下载和控制,不知道为啥。但high optimization会导致watch窗口无法查看局部变量和未被语句调用的变量,可以将局部变量设置为全局变量,从而查看电机状态

 三、把电机转起来

1、workbench生成工程

  • 单击其图标或从安装文件夹路径直接启动
  •  操作界面:可以选择自己新建Project或使用对应的工程示例
P-NUCLEO-IHM001直接用工程示例即可,生成的文件如下,IAR可直接打开  

2、控制电机转动

(1)使用Workbench界面实时控制

  • 先把上一步生成好的IAR工程下载到单片机中,此工程while(1)里为空,只有各种初始化函数。记得下载前配置好工程环境
  • 打开之前建好的workbench,点击电机监控按钮,选择com,连接成功后start motor即可。
  • 可以正反转,但是当速度正负变化时会报错,此时需要点击Fault Ack清除错误,start重新开始。详细的电机状态和正反转控制方法,请看下一个博客https://blog.csdn.net/talender/article/details/82824366

(2)调用API,编写IAR工程

在while(1)中的 /* USER CODE BEGIN 3 */ 与 /* USER CODE END 3 */ 间编写程序,否则在CubeMx调整外设重新生成后,编写的代码会消失(如果在workbench重新generate,代码不管写在哪都会消失)。详细的电机状态和正反转与转速控制方法,请看下一个博客https://blog.csdn.net/talender/article/details/82824366 while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ MC_ProgramSpeedRampMotor1(3000/6,1000); //设定转速为3000 MC_StartMotor1(); //马达运转 HAL_Delay(10000); //延时10S MC_ProgramSpeedRampMotor1(5000/6,1000); //设定转速为3000 HAL_Delay(10000); MC_ProgramSpeedRampMotor1(2000/6,1000); //设定转速为3000 HAL_Delay(10000); MC_StopMotor1(); //马达停转 HAL_Delay(5000); /* USER CODE END 3 */ }

四、所有的API

API详解请看文档:https://download.csdn.net/download/talender/10683711