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

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

[复制链接]
STMCU小助手 发布时间:2022-10-1 21:18
1. 资源扩展板介绍4 i/ e% j0 e" @! \: a+ ]
1.1. 硬件介绍) {; A! t$ c. I4 G5 ~

* l  k) V) j/ O  F
06466d8839585a2dbfe399bb38d14c42.jpg 8 h! t0 L3 R6 a

9 P) d2 I; q- v$ d1.1. 资源扩展板可开发项目

6 x8 o5 e) R. p: C/ B, i! ?, Y( V
b4c8fb379efa916fadba864086419827.jpg
4 Q) p+ J( }5 U1 V/ t3 r3 x1 Q$ z
! R" Y( i) k7 ?" Z2.扩展板蜂鸣器控制
7 ^; q0 L& D8 ~+ G2 A+ x2.1实验原理
* i) K9 ]3 W( Z& Z3 K
打开扩展板原理图对照扩展板可以看到扩展板有1个蜂鸣器SP1,如下图:& d4 g- |0 d; I: [% \+ e
! q- \4 Q2 W' P* m; n
d494d8b95974cbaffa67634cbdcc0ab8.png $ E( d* Q; w1 T0 H. k) [% U% t4 b/ J

5 [7 b# [1 l; J& g$ H% w由上图可见通过TIM4_CH1电平改变控制电路的通断从而驱动蜂鸣器。$ k& _/ V. y$ Q4 z; x' Q
0 `1 n" ~" w) [7 K0 U
6fd5f0cc5cac3e10f2ed0ffda6fbcbf2.jpg
0 E/ f+ m1 H* H; q5 [; P
8 K+ Y) _% \7 z8 b3 ^8 t/ t$ @4 }扩展板与底板接口对照图4 S- M$ s, u+ v
+ U7 Q7 N0 L# g2 W" |" M) |
查看原理图可知TIM4_CH1对应PB6,查看芯片手册可知PB6可以作为PWM TIMER4的通道1使用,本文实现如何通过PWM驱动蜂鸣器:# {4 C3 c7 r: f6 j2 y2 G
)TW(DS9T)]$CJCQT]CY~MC8.png / w: m' v9 `! _

& q% \% a( I; K& T/ q! U5 o9 I  R7 D( A7 g) l' i
2.2.实验目的1 s. q  @. U' P. ]1 J$ b" I0 w
了解蜂鸣器工作原理
0 X5 v) W# X% m2 r; F# a  ~9 _8 ]0 j" ?8 ^( f- n, |9 I+ L
学习TIM中PWM的使用方法,掌握如何利用STM32MP157A芯片输出PWM波控制蜂鸣器
+ L1 _7 P5 Q- D' j" B  m; c3 `! B; q* _. ?$ J! x5 i0 U0 h
2.3.实验环境
+ T- z8 Y* V) m# ?+ qFS-MP1A开发平台% v; k6 V2 ]6 T* w
& `9 M, Y2 Q* M- ]
ST-Link仿真器5 ~4 J6 L- s% R/ [; w1 r5 D% t9 q

! G; Z8 }) x8 c- CSTM32CubeIDE开发软件& b# ?' f7 Q  m# q' D9 ~3 s
. B  x/ P; @8 S: A
PC机 XP、Window7/10 (32/64bit)9 }2 g* T6 \7 J# X6 [/ s

& V( D: G2 ?. Z" Y2.4.实验步骤! Y, T) \% f6 I3 Q" ?
MX配置
5 F9 {  m& D( U, S
6 P3 i8 W& o( q. c, Q根据原理图,配置PB6引脚设置为TIM4_CH1。切换到TIM4标签,勾选给“M4”,“Channel1”选择“PWM Generation CH1”,所有配置如下图所示。
# G4 x' @# Y! Q; M$ U
5 a" b$ L+ k; v. {3 { d4946bdf8a533510b63b6e4009442a8f.jpg ( n7 A: y6 d) F2 O9 U3 w8 B! G% j
* C: u+ Y$ E3 O1 z
f90458147772d5ea8bc34427e0c6d91f.png   z' Z! V+ a7 u4 d( Z

1 K1 L6 l/ `) `9 G上述为新建工程配置过程,可参考12.3.2章节进行导入已有工程,工程存放路径【华清远见-FS-MP1A开发资料\02-程序源码\ARM体系结构与接口技术\Cortex-M4\10_EX_PWM_BEEP】
4 ^# C9 E; e3 I! q
' U& Z9 c/ [1 [1 ^代码设计
% Y$ b3 g& K) a  t7 V! D+ x9 d0 X. X, t
找到创建的工程,打开main.c,完善定时器中断回调函数,在该函数里,使用“__HAL_TIM_SET_COMPARE()” 可以修改寄存器CCR,实现不同的占空比。
' v1 `+ }9 g. F& J3 e! @1 t; u6 ~
4 Q  O. B- S: L将定时器中断启动函数“HAL_TIM_Base_Start_IT()”和定时器PWM输出开始函数“HAL_TIM_PWM_Start()”封装在一起。) R2 ]1 [' \- Y' d
2 R3 [+ |0 f, ^( {* N" T, V6 z
0c74c51872a7146debf26b03da7d84a9.jpg 1 Z& i# E. z% U1 `. ?, T

* A9 y* U1 Q8 d3 f最后主函数调用“TIM_PWM_Start()”即可启动TIM中断,通过改变pulse的数值可以输出不同占空比的PWM,可以控制蜂鸣器发出不同频率的声音。7 g# d' X: l8 D& `6 H6 z  s
————————————————
' B" s6 ?) W' \" j# `版权声明:华清远见IT开放实验室% q% W3 P$ [7 I8 s$ c' X
* e/ A+ z8 n7 q( D
) Z; d! ]. z( [
赞 收藏 评论0 发布时间:2022-10-1 21:18

举报

0个回答

所属标签

相似技术帖

官网相关资源

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