本帖最后由 toofree 于 2018-9-17 00:24 编辑 ) |/ c4 |& `; z8 P' ]2 e* P4 [: L 【STM32电机培训】——8、任务4开放性实验之:加个转速 本实验背景请参考之前的两篇帖子: 【STM32电机培训】——6、任务4开放性实验转矩控制电机 https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=617511&fromuid=307297& ^) n; q: Z9 b9 E( p (出处: 意法半导体STM32/STM8技术社区)$ C8 M, V3 C! n1 k$ u9 o" A! g 【STM32电机培训】——7、STMStudio使用之:我的看图学习 https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=617512&fromuid=307297% q l9 c6 p6 d9 z1 d% Y (出处: 意法半导体STM32/STM8技术社区)$ w" u' N' E3 D 由于在之前帖子中,在STMStudio中观察变量只有两个“Tuning_ACD ”和“Tuning_Iqref ”,转速却只是在“Workbench”-->“Monitor”-->“Plotter”下显示,观察起来多有不便。( A- L% s6 p. i; x 本帖将增加当前转速在STMStudio中显示观察,用到了一条读取当前平均转速函数“MC_GetMecSpeedAverageMotor1(void)”。) O4 ^* p! N! _" {! h8 } 函数返回值的单位是0.1Hz,即每0.1秒,电机转的圈数 A圈/0.1秒。那么每秒转的圈数就是A/10,每分钟转速就是(A/10)*60,即A*6。; _6 H! D0 ] x- O/ E 因此实际转速就是 MC_GetMecSpeedAverageMotor1() * 6 rpm。& I" B( d' s: E" y* B/ X$ Q 5 e* \# O% Z* d" Y) T 增加平均转速变量定义,记得一定要加“volatile”修饰,否则代码可能会被优化掉。4 }0 L+ r* [+ x# ^ 9 e- s2 Q) d. ]- y1 @3 u: B 3 s7 h! Q5 v. N! u3 C1 X5 N 在while主循环中,读取转速。% n$ O3 _# ?) k5 R: i $ K! U$ N7 I w; l7 ` 编译IAR工程。下载固件到开发套件中。' i6 m/ ~1 k# t ) E4 q/ ?; i) H5 ^5 ?3 f8 S3 M9 Z* ] 打开软件“STMStudio”,并从最近使用的工程中直接打开工程“P-NUCLEO-IHM001_task4.tsp”。 增加观察变量“avr_speed”,增加一个“VarViewer3”,并将“avr_speed”发送到“VarViewer3”。3 f3 v" \ L8 }" m3 H 开始记录波形,并不断调节电位器改变转矩,在三个“VarViewer”窗口中分别得到相应波形。 5 w# G- L2 v5 {# F: h0 n" b: `6 ` 实验结束,程序附上: |