STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器

1、准备开发板

这里我选用了一块网红开发板:”小熊派“,这款板子的人气比较高,还是全国大学生物联网设计竞赛(华为杯)的华为竞赛开发板,我个人也比较喜欢用这款板子,这款板子在放在纸箱吃灰半年之后,被我重新拿了起来,并想借此写博客的机会,整理一下自己的代码。

开发板功能区分布图

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第1张图片

开发板俯视图

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第2张图片

2、STM32CubeMX生成代码

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第3张图片

搜索并选择芯片型号

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第4张图片

配置系统时钟

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第5张图片

配置时钟树

STM32L4的最高主频可达到80M,最后使HCLK = 80Mhz即可:

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第6张图片
STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第7张图片

配置GPIO引脚

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第8张图片

配置定时器

计时器更新中断频率计算F: 
F = ( arr + 1 )*( psc + 1 ) / 80M 当设置arr = 79,psc = 999时,F = 1000 Hz = 1 K Hz

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第9张图片

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第10张图片

生成工程设置

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第11张图片

代码生成配置

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第12张图片
STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第13张图片

生成代码

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第14张图片

生成成功

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第15张图片

在gpio.h中编写以下代码

#define BEEP_ON 	HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1)	//蜂鸣器发声
#define BEEP_OFF 	HAL_TIM_PWM_Stop(&htim16,TIM_CHANNEL_1)		//蜂鸣器关闭

在main.c的main函数中编写以下代码

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    BEEP_ON;		//蜂鸣器发声
    HAL_Delay(1000);//延时1秒
    BEEP_OFF;		//蜂鸣器关闭
    HAL_Delay(1000);//延时1秒
}
/* USER CODE END 3 */

4、配置烧录器

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第16张图片
STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第17张图片

5、烧录代码

STM32CubeMX基础例程(小熊派):06.定时器产生PWM驱动蜂鸣器_第18张图片

6、实验现象

​ 控制蜂鸣器每1秒钟响一次。

你可能感兴趣的:(STM32CubeMX基础例程,stm32,单片机,物联网)