STMCU小助手
发布时间:2022-9-29 17:03
|
1. 资源扩展板介绍 1.1. 硬件介绍0 ~& G# `" o1 ~* ^7 u5 ~$ X/ E8 A
/ V' y7 y6 }+ f- x. R 1.1. 资源扩展板可开发项目
" @/ ]+ 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
由上图可见通过TIM4_CH1电平改变控制电路的通断从而驱动蜂鸣器。( D' x8 ?9 L* M8 d5 o/ V ( M. ~- U9 v' U4 _! D
; A7 v2 t4 G6 X5 R; i# ~ 扩展板与底板接口对照图 9 F- L3 b! A6 R% T/ T( a 查看原理图可知TIM4_CH1对应PB6,查看芯片手册可知PB6可以作为PWM TIMER4的通道1使用,本文实现如何通过PWM驱动蜂鸣器:
2.2.实验目的 了解蜂鸣器工作原理3 K4 U* \1 K- m9 z0 r % t- P- G0 j' J* S4 a2 h G! i 学习TIM中PWM的使用方法,掌握如何利用STM32MP157A芯片输出PWM波控制蜂鸣器 ' `0 f) C& A, ~ 2.3.实验环境 FS-MP1A开发平台, D `9 V g1 \( t" u ST-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 PC机 XP、Window7/10 (32/64bit)) N4 x7 }3 q5 g 2.4.实验步骤$ E0 m# t2 H+ h/ M3 T& A MX配置 7 m0 [8 o" u/ n% Y1 J& ~5 Z& l6 l 根据原理图,配置PB6引脚设置为TIM4_CH1。切换到TIM4标签,勾选给“M4”,“Channel1”选择“PWM Generation CH1”,所有配置如下图所示。 2 y0 |, h4 `! F A3 y9 T4 | P
& {' d2 M7 `( G+ f 上述为新建工程配置过程,可参考12.3.2章节进行导入已有工程,工程存放路径【华清远见-FS-MP1A开发资料\02-程序源码\ARM体系结构与接口技术\Cortex-M4\10_EX_PWM_BEEP】 ; S3 ]9 P D# L& w 代码设计. f1 Y* H6 K+ e1 X3 W# K 找到创建的工程,打开main.c,完善定时器中断回调函数,在该函数里,使用“__HAL_TIM_SET_COMPARE()” 可以修改寄存器CCR,实现不同的占空比。9 S) U7 E4 b* C+ P6 @ }) B' q 将定时器中断启动函数“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
最后主函数调用“TIM_PWM_Start()”即可启动TIM中断,通过改变pulse的数值可以输出不同占空比的PWM,可以控制蜂鸣器发出不同频率的声音。 ————————————————, R3 u0 W0 C* o+ Y 版权声明:本文为CSDN博主「华清远见IT开放实验室 * [+ o/ D1 I( L; a ( j2 p& Y: ^1 n% T) V3 X" u |
STM32MP157双A核Linux + 自研RTOS双系统镜像免费下载
扩展STM32微处理器,实现高性价比、低功耗和灵活性能
STM32MP1 自举程序编程:USB DFU/USART 协议全解析
兔哥心中的ST中文论坛
我心中的ST中文论坛
STM32 开发者指南:ST.com 全新 MCU 产品阵容视觉布局深度解析
深度拆解 STM32MP1 Boot 链路
STM32串口自动识别波特率的原理
STM32MP135 MP157 MP257 CoreMark移植&&跑分对比&&多核心负载不均衡问题排查与解决
STM32--STM32 微控制器详解
微信公众号
手机版