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

【STM32电机培训】——2、生成电机样例程序stmcx、ioc、IAR工程

[复制链接]
七哥 发布时间:2018-9-9 15:30
本帖最后由 toofree 于 2018-9-9 15:32 编辑

生成电机样例程序stmcx、ioc、IAR工程


本贴目的是,对于电机控制还处于两眼一抹黑的情况下,先跑个套路,从直观上对MotorControl Workbench 5.0.3软件及开发过程有个了解。

打开软件MotorControl Workbench 5.0.3
01.jpg

在样例工程列表中,找到P-NUCLEO-IHM001-BullRunning样例,并双击打开
02.jpg

提示关闭前保存,先选是,往下走着看看
03.jpg

保存工程中,按默认名称“SDK50x-P-NUCLEO-IHM001-BullRunning.stmcx”,先不做修改
04.jpg

可以看到标题栏上stmcx工程名称为“SDK50x-P-NUCLEO-IHM001-BullRunning”。左边有4项,电机参数、电源阶段(硬件驱动)、驱动管理、控制阶段(MCU控制相关)。
双击中间的大M,进度电机参数设置
05.jpg

可以看到,样例默认设置为下图,对参数暂不做改动。
06.jpg

对比之前电机参数识别时得到的结果,有一定的差别,暂不使用获得的结果代替上图中电机参数,供之后进阶阶段参考。
07.jpg

传感器设置,由于本实验套件没有相应外设,因此都不勾选
08.jpg

电源硬件驱动设置,暂不做任何修改。如要修改,需要对照硬件电机驱动电路参数。
09.jpg

驱动管理,有6个蓝色框,可以设置各种参数。暂不做任何修改
10.jpg

如要修改,那么鼠标双击蓝色框内,将弹出相应设置选项,如下图
11.jpg

对于第4项比较重要,是电机控制时MCU相关资源参数的设置,不妨打开来看看。当然这些参数如果需要调理的话,将来的STM32CubeMX下也可以说完成。
12.jpg

双击MCU和时钟频率选项图标,弹出MCU型号,时钟类型,主时钟频率,电压等参数
13.jpg

设置输出工程类型,IDE及工具链。
14.jpg

可以有IAR、Keil4、Keil5、TrueSTUDIO、SW4STM32等,我们这里选择IAR,即EWARM。
15.jpg

生成工程文件。
16.jpg

当然也可以通过主菜单的Tools下拉菜单中,选择相应设置。
17.jpg

生成工程文件中……。生成工程文件成功后,过程窗口自动关闭。如没有任何错误提示,那么进行下一步,IAR下编译目标固件。
18.jpg

使用IAR for ARM 8.0以上,我这里安装了三个版本(8.20、8.22.2、7.80)的IAR for ARM,选择8.20,因为5.0的电机开发环境要求必须是IAR 8.0以上版本。
19.jpg

如果选择 7.80,那么在编译时会多一条警告,关键是生成的目标固件无法下载执行。我当了回小白鼠,其他小伙伴就没必须再去尝试了,给大家省点时间。
20.jpg

打开IAR 8.20后,找到并打开工程“Project.eww”
21.jpg

把用户文件夹前的加号点开,可以看到文件后都有一个红色有点,这也表示相应文件未编译,当编译后红点将自行消失。打开main.c文件,可以看到主函数比较简洁明了,while中没有任何代码,这是因为样例工程中的程序在运行时通过USART与上位机通信来设置参数,都在中断中执行。
22.jpg

鼠标右键点工程,弹出菜单,选择“make”,编译工程。
23.jpg

编译完成,0错误、0警告
24.jpg

下载并调试,或用快捷键ctrl+d
25.jpg

下载成功,进入调试模式,程序运行指针指向main函数开头
26.jpg

点击全速运行程序图标,或者用快捷键F5
27.jpg

打开监控窗口
28.jpg

设置相应串口参数,并连接串口
29.jpg

上位机与电机目标板固件已连接
30.jpg

点“Start motor”按钮,电机开始运行
31.jpg

电机开始运行效果
77.jpg

可以看到设置转速与测量转速,测量转速是通过电机实时运行测量得到的结果。
32.jpg

高速电机设置转速,电机速度发生变化,测量转速反馈到的转速也相应变化。
33.jpg

在调整速转速、方向、或启动时,可能会发生错误。错误主要是电机速度反馈错误和电机超流错误。
电机速度反馈错误
34.jpg

电机超流错误
35.jpg

右侧按钮的操作,将会在下面的“操作改变日志”中有显示
36.jpg

打开plotter绘图窗口,可以看到设置转速与测量转速的变化波形。
放大波形,可以看到实测波形在设置转速附近做上下往复,这是因为一直在做pid调节转速。
37.jpg

反馈的测量转速是通过USART串口发送到上位机的,并且相对发送采样速率不同,在低速时,反馈点多一些,高速时每个周期的反馈点要少一些。
38.jpg

电机速度有突变时,反馈速度会有过高的过冲,这也是PID的一个特征。
39.jpg

速度变大、变小,都会有反馈速度过冲
40.jpg

至此,一个基本的样例程序跑起来了,接下来需要完成其它的实验。将在此工程基础上,适当增减代码来实现。

收藏 评论13 发布时间:2018-9-9 15:30

举报

13个回答
七哥 回答时间:2018-9-9 15:35:46
本帖最后由 toofree 于 2018-9-9 15:38 编辑

按照本人惯例,本实验样例程序工程附上:
P-NUCLEO-IHM001.rar (8.98 MB, 下载次数: 1603)
vnicehuai 回答时间:2018-9-9 20:06:02
签到
vnicehuai 回答时间:2018-9-9 20:06:29
签到
vnicehuai 回答时间:2018-9-9 20:07:01
签到
vnicehuai 回答时间:2018-9-9 20:07:17
签到
子曰好人 回答时间:2018-9-9 22:08:16
我用的是IAR7.7,生成的工程编译没有问题
七哥 回答时间:2018-9-9 22:32:51
子曰好人 发表于 2018-9-9 22:08
我用的是IAR7.7,生成的工程编译没有问题

谢谢回复!
我可能人品爆棚了,用7.8编译没问题的,下载时死活不行,唉!
环境的问题伤不起,直接换高版本,跳过
聪聪 回答时间:2018-9-13 11:01:14
这是直流电机吧,还有反馈的
聪聪 回答时间:2018-9-13 11:02:20
MotorControl Workbench 5.0.3适合调步进电机吗,特别是加减速的问题
七哥 回答时间:2018-9-13 12:41:04
聪神聪 发表于 2018-9-13 11:01
这是直流电机吧,还有反馈的

是的,三相直流无刷电机。

可能不太适合步进电机吧,步进电机不能失步。无刷电机则会有失步的情况。
gatsby32 回答时间:2019-3-6 10:57:43
老哥 为啥我的程序下载时会出现这个问题啊
图片7.png
七哥 回答时间:2019-3-6 11:11:56
本帖最后由 toofree 于 2019-3-6 11:22 编辑
gatsby32 发表于 2019-3-6 10:57
老哥 为啥我的程序下载时会出现这个问题啊

不知道,没有工程。
工程名和工程路径不要以数字开头,不要有标点符号、特殊字符和中文,最好是全字母。
用STM32CubeProgrammer或STM32 ST-LINK Utility,先连了下,看看能不能识别器件STM32F302。
lmyyjx 回答时间:2019-4-16 14:56:29
签到

所属标签

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