本帖最后由 toofree 于 2018-9-17 00:24 编辑 , N& t+ g! T* U+ m% r 【STM32电机培训】——8、任务4开放性实验之:加个转速 本实验背景请参考之前的两篇帖子: 【STM32电机培训】——6、任务4开放性实验转矩控制电机 https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=617511&fromuid=307297 (出处: 意法半导体STM32/STM8技术社区)2 a7 p/ T% }) O* v" o1 _& I 【STM32电机培训】——7、STMStudio使用之:我的看图学习 https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=617512&fromuid=3072979 ^) M$ A8 q6 _' E (出处: 意法半导体STM32/STM8技术社区) 由于在之前帖子中,在STMStudio中观察变量只有两个“Tuning_ACD ”和“Tuning_Iqref ”,转速却只是在“Workbench”-->“Monitor”-->“Plotter”下显示,观察起来多有不便。, F% f, M& z0 [5 h 本帖将增加当前转速在STMStudio中显示观察,用到了一条读取当前平均转速函数“MC_GetMecSpeedAverageMotor1(void)”。 ) v1 G1 K- K, Z4 ^9 ^ : ~2 g/ C; I6 x 函数返回值的单位是0.1Hz,即每0.1秒,电机转的圈数 A圈/0.1秒。那么每秒转的圈数就是A/10,每分钟转速就是(A/10)*60,即A*6。 因此实际转速就是 MC_GetMecSpeedAverageMotor1() * 6 rpm。# Z2 M6 J3 p1 G& J; V& Y1 F ' q7 Y2 p$ }3 T: w6 Y0 O 增加平均转速变量定义,记得一定要加“volatile”修饰,否则代码可能会被优化掉。6 {2 S3 f$ ^1 K5 z7 u. _ F' p4 O5 T5 b9 } / i& _/ z: {" b: J3 D: f { 在while主循环中,读取转速。, h$ M1 d8 e. W9 s5 r! _" q( ^& V7 }1 B 8 W7 Y; a( N. ?/ a$ e 编译IAR工程。下载固件到开发套件中。 打开软件“STMStudio”,并从最近使用的工程中直接打开工程“P-NUCLEO-IHM001_task4.tsp”。* Q. w6 j3 D) s5 X 9 ^2 E+ N! Z+ P; L. B 增加观察变量“avr_speed”,增加一个“VarViewer3”,并将“avr_speed”发送到“VarViewer3”。 - B. ~0 }- g0 V! n4 }7 v/ B7 X 开始记录波形,并不断调节电位器改变转矩,在三个“VarViewer”窗口中分别得到相应波形。 # {. r* z5 f+ A5 U* {! U 实验结束,程序附上:- M7 O+ ]5 F! ]$ _ |