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

stm32mp1 Cortex M4开发篇11:扩展板蜂鸣器控制

[复制链接]
STMCU小助手 发布时间:2022-10-1 21:18
1. 资源扩展板介绍
) ^' O4 r/ n5 s" G0 {5 y1.1. 硬件介绍3 j1 e" F( M  ~8 U) c/ j$ k& F

9 r! d9 J0 X4 K8 G0 O  K
06466d8839585a2dbfe399bb38d14c42.jpg
/ a+ {- r! \# ?7 k$ R3 J8 S6 z
- ?1 d1 o# k) J, W; k. M  M1.1. 资源扩展板可开发项目

' t5 T8 S& |' J8 @
1 g: w# p* }! m) a1 B/ v b4c8fb379efa916fadba864086419827.jpg - M0 C7 m! w, ]
: G8 l( z" z3 ?$ P" o% i$ j% |  C" Y
2.扩展板蜂鸣器控制
( n+ \. @# H2 x! Q; D: R2.1实验原理

# X. L( t1 x, r/ t打开扩展板原理图对照扩展板可以看到扩展板有1个蜂鸣器SP1,如下图:
& A3 j4 i' D' `
" V. P) q9 H& I: x- w d494d8b95974cbaffa67634cbdcc0ab8.png 2 r- V% M5 C+ A" \# D

. q5 o" J+ ^( K/ _3 Q由上图可见通过TIM4_CH1电平改变控制电路的通断从而驱动蜂鸣器。0 m8 e. X) B8 e& R1 f0 |) A/ Y; O: I

2 o$ ?1 n, C$ f9 `* ?& @ 6fd5f0cc5cac3e10f2ed0ffda6fbcbf2.jpg 5 V2 j2 G% T/ l  g* a4 @

  k* S4 N2 i9 _) `. Y( g9 V扩展板与底板接口对照图# ~% e7 C$ v1 I7 v# {% q( ?

7 M( ~! O5 f5 m+ i& o查看原理图可知TIM4_CH1对应PB6,查看芯片手册可知PB6可以作为PWM TIMER4的通道1使用,本文实现如何通过PWM驱动蜂鸣器:/ Y# D1 u: k5 u$ ^! P! E# M6 q
)TW(DS9T)]$CJCQT]CY~MC8.png & W9 b7 I7 d9 N: @1 U' [: f, N
/ X4 x3 u9 T! m9 `2 H) p

$ E; o# H0 V6 a8 W- {* R. c& x6 R! o2.2.实验目的  W( T. d1 X1 I  ~/ y
了解蜂鸣器工作原理
( {$ b+ s' R% a* }+ Y1 C4 W8 I* n: r) f1 N7 B. u8 ~* K
学习TIM中PWM的使用方法,掌握如何利用STM32MP157A芯片输出PWM波控制蜂鸣器
/ o  S! f' R7 x! }4 S- c  F# E
% H( {9 d. b- I3 W1 ?. k2.3.实验环境! h9 D6 e) h; M/ X5 f9 V& I
FS-MP1A开发平台
5 E4 q$ [, |8 N' ~) K1 a
& P9 b  z& i5 R. }1 e' L: H$ a  EST-Link仿真器7 M5 _% v) ^, X2 P& H! M6 y5 K

' h3 d# m& \0 ?$ B. eSTM32CubeIDE开发软件
4 {4 A; ~' t. H9 m1 R. H1 T) E, x& U  Z# F1 e
PC机 XP、Window7/10 (32/64bit)
. H: g2 ?+ S% P& K- s( e, w3 _; J+ ]8 e5 @; e6 ~
2.4.实验步骤& z, J+ J* v+ @- u. @# I8 q. f% `( j( p
MX配置( ~' x# M- ^4 x
& l: l. V6 x( ^* s, d
根据原理图,配置PB6引脚设置为TIM4_CH1。切换到TIM4标签,勾选给“M4”,“Channel1”选择“PWM Generation CH1”,所有配置如下图所示。
) S8 ~! O5 l4 i, Z3 D( m$ U
# u8 G1 v$ r( j1 {8 N d4946bdf8a533510b63b6e4009442a8f.jpg 8 A/ x( L7 V% [  H. g2 J( h

$ o$ K) R1 l9 U4 J5 N% o: d f90458147772d5ea8bc34427e0c6d91f.png * _  r. S8 G( |& [/ P+ p0 ~
1 R) U' `0 R; Y# Z' v# V
上述为新建工程配置过程,可参考12.3.2章节进行导入已有工程,工程存放路径【华清远见-FS-MP1A开发资料\02-程序源码\ARM体系结构与接口技术\Cortex-M4\10_EX_PWM_BEEP】
* ^, d+ G/ W1 j. S6 C5 o( Q7 U! t4 ~
代码设计$ A" a, B( M  @- q0 D
/ x  y6 M( {& e$ j9 p, P0 a
找到创建的工程,打开main.c,完善定时器中断回调函数,在该函数里,使用“__HAL_TIM_SET_COMPARE()” 可以修改寄存器CCR,实现不同的占空比。
4 t1 I3 J( R" \& H! ?. Y  Y2 [1 g. }6 U+ V" x- ?
将定时器中断启动函数“HAL_TIM_Base_Start_IT()”和定时器PWM输出开始函数“HAL_TIM_PWM_Start()”封装在一起。
5 @8 I# @1 l1 n9 k5 |0 X% U1 D$ T/ w
0c74c51872a7146debf26b03da7d84a9.jpg
  S3 P) F4 V6 y9 M4 G% r0 N! j, j- U6 z" |5 y( S1 Y! D
最后主函数调用“TIM_PWM_Start()”即可启动TIM中断,通过改变pulse的数值可以输出不同占空比的PWM,可以控制蜂鸣器发出不同频率的声音。
- ~1 ?+ ]1 D: p0 Y+ @————————————————
1 |; U/ h+ i( g; `3 g9 K版权声明:华清远见IT开放实验室+ k( [/ m7 H& Z7 C7 }( n  u
0 A' D! y& m7 S* V

5 D+ \7 M) n7 k, I. s& U- f
赞 收藏 评论0 发布时间:2022-10-1 21:18

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版