本帖最后由 toofree 于 2018-9-17 00:24 编辑 ; b6 i2 @; g3 h 9 F9 O: ~" D: v+ @! a/ m: C7 ` 【STM32电机培训】——8、任务4开放性实验之:加个转速 本实验背景请参考之前的两篇帖子: 【STM32电机培训】——6、任务4开放性实验转矩控制电机 https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=617511&fromuid=307297 (出处: 意法半导体STM32/STM8技术社区) 4 ]9 Y( z2 U- j6 ~ 【STM32电机培训】——7、STMStudio使用之:我的看图学习 https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=617512&fromuid=307297" |" V' O3 F. j3 A (出处: 意法半导体STM32/STM8技术社区)$ B% B1 v- ^3 f1 P l9 ?1 |4 ~ 由于在之前帖子中,在STMStudio中观察变量只有两个“Tuning_ACD ”和“Tuning_Iqref ”,转速却只是在“Workbench”-->“Monitor”-->“Plotter”下显示,观察起来多有不便。2 m* f/ ?" p8 y) s' | 本帖将增加当前转速在STMStudio中显示观察,用到了一条读取当前平均转速函数“MC_GetMecSpeedAverageMotor1(void)”。 函数返回值的单位是0.1Hz,即每0.1秒,电机转的圈数 A圈/0.1秒。那么每秒转的圈数就是A/10,每分钟转速就是(A/10)*60,即A*6。 因此实际转速就是 MC_GetMecSpeedAverageMotor1() * 6 rpm。 & @( O+ Q% W. L 增加平均转速变量定义,记得一定要加“volatile”修饰,否则代码可能会被优化掉。 3 a- M, @" g i& {" [ 在while主循环中,读取转速。 编译IAR工程。下载固件到开发套件中。$ W8 X. I9 t3 w4 `0 l; W2 c$ R - q# M# X" Z m3 z; [3 e, y/ w 打开软件“STMStudio”,并从最近使用的工程中直接打开工程“P-NUCLEO-IHM001_task4.tsp”。 增加观察变量“avr_speed”,增加一个“VarViewer3”,并将“avr_speed”发送到“VarViewer3”。) e' Y8 _3 V8 n0 L3 ] % j$ t) O) b' w: U; s 开始记录波形,并不断调节电位器改变转矩,在三个“VarViewer”窗口中分别得到相应波形。& V7 U1 Z& @7 p9 D 实验结束,程序附上:8 d2 j$ n# E1 k% u* I |