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

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

[复制链接]
STMCU小助手 发布时间:2022-9-29 17:03
1. 资源扩展板介绍
8 V( h3 c1 K% T# R* `1.1. 硬件介绍0 ~& G# `" o1 ~* ^7 u5 ~$ X/ E8 A

" T! T  x5 m( {0 c1 P 06466d8839585a2dbfe399bb38d14c42.jpg
$ V* @# K/ e- B% L$ c9 q/ V' y7 y6 }+ f- x. R
1.1. 资源扩展板可开发项目
/ k4 U+ u& a/ |0 m5 |/ ~
6 \5 w1 R" C. V% o b4c8fb379efa916fadba864086419827.jpg
' E8 E# T2 `* P7 n0 J. R" @/ ]+ K8 |+ X0 e  J
2.扩展板蜂鸣器控制2 p  x9 v" J4 W6 A$ i
2.1实验原理" ?# a) @& h) k. i2 e6 f
打开扩展板原理图对照扩展板可以看到扩展板有1个蜂鸣器SP1,如下图:  L6 x5 t2 m6 G0 a% C
( Z$ f6 H/ V3 `6 b1 T  u
d494d8b95974cbaffa67634cbdcc0ab8.png " Q; Z6 ?) ~6 o

  t% D: e, ]  v6 w. i- W! E由上图可见通过TIM4_CH1电平改变控制电路的通断从而驱动蜂鸣器。( D' x8 ?9 L* M8 d5 o/ V
( M. ~- U9 v' U4 _! D
6fd5f0cc5cac3e10f2ed0ffda6fbcbf2.jpg
; O. T: I  }5 h* T; A7 v2 t4 G6 X5 R; i# ~
扩展板与底板接口对照图
* s1 J7 l0 O4 i! f2 J9 F- L3 b! A6 R% T/ T( a
查看原理图可知TIM4_CH1对应PB6,查看芯片手册可知PB6可以作为PWM TIMER4的通道1使用,本文实现如何通过PWM驱动蜂鸣器:
) {# r! |" E# Y; Y. O. j
0 z5 i- b4 ?# @$ k% \ 9$W@AT3E6E5KDO_I]3_YO$J.png 5 g0 ~( H, Q) z" [. r
2.2.实验目的
) a  f2 X8 P) P- P了解蜂鸣器工作原理3 K4 U* \1 K- m9 z0 r
% t- P- G0 j' J* S4 a2 h  G! i
学习TIM中PWM的使用方法,掌握如何利用STM32MP157A芯片输出PWM波控制蜂鸣器
6 M% s; ^; Q* y2 H. U5 i" ]' `0 f) C& A, ~
2.3.实验环境
9 H4 n8 u9 a- LFS-MP1A开发平台, D  `9 V  g1 \( t" u

/ b, Z( H6 H5 T0 bST-Link仿真器; ]  N9 O( T4 V; Z; o0 l* }, j& y
: ^( W) x8 v% q& N' K! y
STM32CubeIDE开发软件- n  Z: K0 a9 T* J+ B- a" n

; \" Z/ E: R2 T  YPC机 XP、Window7/10 (32/64bit)) N4 x7 }3 q5 g

$ B: B7 i1 j7 H. p2 [; M2.4.实验步骤$ E0 m# t2 H+ h/ M3 T& A
MX配置
3 M5 F  }& C7 j1 y  S3 Z8 G5 T7 m0 [8 o" u/ n% Y1 J& ~5 Z& l6 l
根据原理图,配置PB6引脚设置为TIM4_CH1。切换到TIM4标签,勾选给“M4”,“Channel1”选择“PWM Generation CH1”,所有配置如下图所示。
! R) J3 B4 I# S, ^7 h2 y0 |, h4 `! F  A3 y9 T4 |  P
d4946bdf8a533510b63b6e4009442a8f.jpg + h' p& E* W' I4 ^/ y' e' G

* J" E; X/ B$ B7 K! W! j) T f90458147772d5ea8bc34427e0c6d91f.png + L& ?) q: c, ^1 _% t6 w" K3 q3 j' ]1 C
& {' d2 M7 `( G+ f
上述为新建工程配置过程,可参考12.3.2章节进行导入已有工程,工程存放路径【华清远见-FS-MP1A开发资料\02-程序源码\ARM体系结构与接口技术\Cortex-M4\10_EX_PWM_BEEP】
* w' ^: Y! F0 i0 J' a" R' l; S3 ]9 P  D# L& w
代码设计. f1 Y* H6 K+ e1 X3 W# K

1 o; @  P& |1 P6 ?. F5 z找到创建的工程,打开main.c,完善定时器中断回调函数,在该函数里,使用“__HAL_TIM_SET_COMPARE()” 可以修改寄存器CCR,实现不同的占空比。9 S) U7 E4 b* C+ P6 @  }) B' q

5 D6 I1 ]: F5 D+ D! N: P1 |将定时器中断启动函数“HAL_TIM_Base_Start_IT()”和定时器PWM输出开始函数“HAL_TIM_PWM_Start()”封装在一起。' e2 S8 D; B6 A2 I6 K. C3 k
' d1 B  A  U4 s. y0 x' D3 y
0c74c51872a7146debf26b03da7d84a9.jpg
- \  f4 @' M+ x' q1 A  t5 Y  Q' k. |
1 [- c# l. P' E& O7 v5 X2 T最后主函数调用“TIM_PWM_Start()”即可启动TIM中断,通过改变pulse的数值可以输出不同占空比的PWM,可以控制蜂鸣器发出不同频率的声音。
0 u" V% _8 U! e  x$ a) p————————————————, R3 u0 W0 C* o+ Y
版权声明:本文为CSDN博主「华清远见IT开放实验室
( q% p! I1 I/ Y6 u) r* [+ o/ D1 I( L; a
( j2 p& Y: ^1 n% T) V3 X" u
赞 收藏 评论0 发布时间:2022-9-29 17:03

举报

0个回答

所属标签

相似技术帖

官网相关资源

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