本帖最后由 toofree 于 2018-9-17 00:24 编辑 7 P. l# C* b2 C4 Y 【STM32电机培训】——8、任务4开放性实验之:加个转速 本实验背景请参考之前的两篇帖子:' u: S- y6 ^8 p, e1 c 【STM32电机培训】——6、任务4开放性实验转矩控制电机7 a, f9 ?5 k7 M) c0 l! I o5 w; ] https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=617511&fromuid=307297 (出处: 意法半导体STM32/STM8技术社区) 【STM32电机培训】——7、STMStudio使用之:我的看图学习 https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=617512&fromuid=307297 (出处: 意法半导体STM32/STM8技术社区) 5 D; K# k4 i) E( K- ~6 e 由于在之前帖子中,在STMStudio中观察变量只有两个“Tuning_ACD ”和“Tuning_Iqref ”,转速却只是在“Workbench”-->“Monitor”-->“Plotter”下显示,观察起来多有不便。 本帖将增加当前转速在STMStudio中显示观察,用到了一条读取当前平均转速函数“MC_GetMecSpeedAverageMotor1(void)”。 函数返回值的单位是0.1Hz,即每0.1秒,电机转的圈数 A圈/0.1秒。那么每秒转的圈数就是A/10,每分钟转速就是(A/10)*60,即A*6。 因此实际转速就是 MC_GetMecSpeedAverageMotor1() * 6 rpm。 增加平均转速变量定义,记得一定要加“volatile”修饰,否则代码可能会被优化掉。 , a) b+ A( O' U& S! f5 s: G6 J 在while主循环中,读取转速。 5 {+ C! }/ u( P6 X4 d! |: C 编译IAR工程。下载固件到开发套件中。 0 |: o0 g/ ~! L$ l- L2 L% O3 L 4 l4 I: f" R; x9 N 打开软件“STMStudio”,并从最近使用的工程中直接打开工程“P-NUCLEO-IHM001_task4.tsp”。 增加观察变量“avr_speed”,增加一个“VarViewer3”,并将“avr_speed”发送到“VarViewer3”。, [+ S1 y/ k0 W 7 m' ]9 k. y8 v8 _7 U- H / p) q+ i# h0 B- D8 e+ T 开始记录波形,并不断调节电位器改变转矩,在三个“VarViewer”窗口中分别得到相应波形。$ e- y7 E" s2 \% H 实验结束,程序附上:1 Z; p! K: D, c+ Y: e |