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

stm32mp1 Cortex M4开发篇12:扩展板震动马达控制

[复制链接]
STMCU小助手 发布时间:2022-10-1 21:09
1.资源扩展板介绍; e7 F4 p( _! ?' Q3 m
1.1硬件介绍
. a6 ?4 [7 O/ v" l8 _3 [- S7 i( d
' Z* M- P( Z4 x5 L- y% z. g6 f
0c1e6113d0b2e013d5a435d82073771b.png
1 e$ ?( a( v( N" C* i
/ _% v/ V. K% u$ A9 [2 |1 ~0 P; g1.2资源扩展板可开发项目2 [' R! o& E! ~3 M9 [
9 c9 n& J5 J8 [) p
a53d114952a44c6b42945dfb64dd7137.png - X/ {: v2 \8 Z. C8 n
  W0 j9 \) u0 i1 f* R
2.扩展板震动马达控制
; p9 T8 C1 O2 r# e$ Z( ^2.1实验原理

  o9 W, W* ~' k" C( d打开扩展板原理图对照扩展板可以看到扩展板有1个震动马达M1 Motor,如下图:
6 N; ~& k  K  t7 B7 h5 ?; s* K7 S: Y: Q8 `4 z
52544811d4f0b72ff21084833ffc7856.jpg
3 K$ ^2 k& U: C% _
) @# I. [$ M; h- b" k' H由上图可见通过TIM16_CH1电平改变控制电路的通断从而驱动震动马达。& `4 N5 m, Q7 p; w
3 ]5 Y5 W5 j: B/ o! f0 `; A, M
S9N0D[X$SO1}{IZ8L53IHQ2.png ) T# U' K$ N1 k& Q9 o0 r! @

3 Y2 z( ^7 `7 l7 h% F4 H, L+ B$ S/ X扩展板与底板接口对照图. M  H" ^$ Z& s, G5 M
3 Y- t/ O+ ~0 ?* S8 V' w
查看原理图可知TIM16_CH1对应PF6,查看芯片手册可知PF6可以作为PWM TIMER16的通道1使用,本文实现如何通过PWM驱动马达:
6 Y  D& k; a4 b9 M G(6]ULKWLRK5)]T6QK[9_TH.png
3 G3 o4 v0 [* V( [5 W( E& y
# q& w( p" m- y8 ?- G4 ?0 n) |4 d" S: n% G1 [0 q- q
2.2实验目的
( ], C4 n1 j/ T3 \- R7 b了解震动马达工作原理
2 _" d$ p/ r. v$ s2 K4 M' p
9 T. D( M/ u2 {) ?学习TIM中PWM的使用方法,掌握如何利用STM32MP157A芯片输出PWM波控制震动马达
7 c" Q4 W1 R2 x' [, n6 `& N
% V/ d8 |* v4 \7 c* ~
2 B: g7 n2 j9 ], B6 K8 R% T7 e* ^4 c4 ]2.3实验环境
3 n' `9 L' a( a7 oFS-MP1A开发平台4 p8 D: Q. R) _2 v) w# u

, m9 O7 M& G% d' Z' O0 B  kST-Link仿真器
! s$ a6 T0 `7 R2 B, f' j8 I! o0 o1 v7 o/ V# @
STM32CubeIDE开发软件/ I3 j/ c/ m( o7 B' a
3 j" B# L0 O8 ]1 D" m+ Y; c- X
PC机 XP、Window7/10 (32/64bit)
* V' O' M4 o! U% |5 \2 H. I1 y7 W* z) d% Z7 ]4 N, D* D3 u

( E3 e+ O8 w7 o; E" e' z, d+ v# s, z+ n$ ^5 ]9 C7 j6 E% d1 W
2.4实验步骤
. o# y% p2 m  r+ t! dMX配置# {7 p; F9 o1 K

+ P- ^. z+ [% N! N3 X根据原理图,配置PF6引脚设置为TIM16_CH1。切换到TIM16标签,勾选为“M4”,“Channel1”选择“PWM Generation CH1”,所有配置如下图所示。
$ }( x9 s  L% D8 t
6 z! A; c( K3 q+ i) [- U
/ T& |6 L8 B3 k. \3 N( e a453747e8d71a7946b172b9e95af839d.jpg ) q( \* `) A+ s
4 q" O, C( x" q( c  p, G* G9 ~8 G
4624f47e3324c2b5490c58bfac3ce23e.jpg
6 K0 E6 K/ l$ P: t% W- ?+ d" w& M; I5 r& ^* n7 H
上述为新建工程配置过程,可参考12.3.2章节进行导入已有工程,工程存放路径【华清远见-FS-MP1A开发资料\02-程序源码\ARM体系结构与接口技术\Cortex-M4\12_EX_PWM_MOTOR】: _/ Y6 T- h8 t; f5 l. d

1 \8 f5 N+ Y3 F1 ^$ F% ~: w代码设计
$ e: c; ]; L  I! g3 X
7 u- b" q* \, M8 Q2 v' M/ h找到创建的工程,打开main.c,完善定时器中断回调函数,在该函数里,使用“__HAL_TIM_SET_COMPARE()” 可以修改寄存器CCR,实现不同的占空比。- R: }' C& V" s; O- e/ y

* ^5 e* M/ d6 f+ U0 z% v将定时器中断启动函数“HAL_TIM_Base_Start_IT()”和定时器PWM输出开始函数“HAL_TIM_PWM_Start()”封装在一起。
: Y$ B- K% `- v+ o4 |6 {+ P" {$ y8 Q# r7 J- V: D' k: U
339791cc21a7889a8674c48760eb339a.jpg
2 U5 ?7 s% H& Q# g# R% S5 v2 e7 A$ O3 _1 |# H+ _
最后主函数调用“TIM_PWM_Start()”即可启动TIM中断,通过改变pulse的数值可以输出不同占空比的PWM,从而可以实现振动马达不同振动频率。9 h0 v- E0 j/ Z5 C6 {
————————————————# g  T4 e* h/ i0 b3 e
版权声明:华清远见IT开放实验室
# q3 l* K9 [: o2 A5 {: z. c8 ^! C8 T8 @- u1 O* |# g
8 @3 o' l/ T1 b# t
收藏 评论0 发布时间:2022-10-1 21:09

举报

0个回答

所属标签

相似分享

官网相关资源

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