STMCU小助手
发布时间:2022-10-1 21:18
|
1. 资源扩展板介绍4 i/ e% j0 e" @! \: a+ ] 1.1. 硬件介绍) {; A! t$ c. I4 G5 ~
1.1. 资源扩展板可开发项目 / B, i! ?, Y( V
2.扩展板蜂鸣器控制 2.1实验原理* i) K9 ]3 W( Z& Z3 K 打开扩展板原理图对照扩展板可以看到扩展板有1个蜂鸣器SP1,如下图:& d4 g- |0 d; I: [% \+ e ! q- \4 Q2 W' P* m; n
由上图可见通过TIM4_CH1电平改变控制电路的通断从而驱动蜂鸣器。$ k& _/ V. y$ Q4 z; x' Q 0 `1 n" ~" w) [7 K0 U
扩展板与底板接口对照图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
5 o9 I R7 D( A7 g) l' i 2.2.实验目的1 s. q @. U' P. ]1 J$ b" I0 w 了解蜂鸣器工作原理 8 ]0 j" ?8 ^( f- n, |9 I+ L 学习TIM中PWM的使用方法,掌握如何利用STM32MP157A芯片输出PWM波控制蜂鸣器 ; c3 `! B; q* _. ?$ J! x5 i0 U0 h 2.3.实验环境 FS-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 STM32CubeIDE开发软件& 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 2.4.实验步骤! Y, T) \% f6 I3 Q" ? MX配置 根据原理图,配置PB6引脚设置为TIM4_CH1。切换到TIM4标签,勾选给“M4”,“Channel1”选择“PWM Generation CH1”,所有配置如下图所示。
* C: u+ Y$ E3 O1 z
上述为新建工程配置过程,可参考12.3.2章节进行导入已有工程,工程存放路径【华清远见-FS-MP1A开发资料\02-程序源码\ARM体系结构与接口技术\Cortex-M4\10_EX_PWM_BEEP】 代码设计 7 V! D+ x9 d0 X. X, t 找到创建的工程,打开main.c,完善定时器中断回调函数,在该函数里,使用“__HAL_TIM_SET_COMPARE()” 可以修改寄存器CCR,实现不同的占空比。 将定时器中断启动函数“HAL_TIM_Base_Start_IT()”和定时器PWM输出开始函数“HAL_TIM_PWM_Start()”封装在一起。) R2 ]1 [' \- Y' d 2 R3 [+ |0 f, ^( {* N" T, V6 z
最后主函数调用“TIM_PWM_Start()”即可启动TIM中断,通过改变pulse的数值可以输出不同占空比的PWM,可以控制蜂鸣器发出不同频率的声音。7 g# d' X: l8 D& `6 H6 z s ———————————————— 版权声明:华清远见IT开放实验室% q% W3 P$ [7 I8 s$ c' X * e/ A+ z8 n7 q( D ) Z; d! ]. z( [ |
STM32MP157双A核Linux + 自研RTOS双系统镜像免费下载
扩展STM32微处理器,实现高性价比、低功耗和灵活性能
STM32MP1 自举程序编程:USB DFU/USART 协议全解析
兔哥心中的ST中文论坛
我心中的ST中文论坛
STM32 开发者指南:ST.com 全新 MCU 产品阵容视觉布局深度解析
深度拆解 STM32MP1 Boot 链路
STM32串口自动识别波特率的原理
STM32MP135 MP157 MP257 CoreMark移植&&跑分对比&&多核心负载不均衡问题排查与解决
STM32--STM32 微控制器详解
微信公众号
手机版