1、开发环境
(1)KeilMDK:V5.38.0.0
(2)STM32CubeMX:V6.8.1
(3)MCU:STM32F407ZGT6
2、无源蜂鸣器简介
无源蜂鸣器内部没有振荡源,需要采用一定频率的方波才能驱动发声。详情参开以下文章。
八、51单片机之蜂鸣器_51蜂鸣器_朱嘉鼎的博客-CSDN博客蜂鸣器简介无源蜂鸣器示例程序https://blog.csdn.net/weixin_42727214/article/details/128193629
3、实验目的&原理图
3.1、实验目的
(1)使蜂鸣器发出人耳可听到的声音。
3.2、原理图
(1)BEEP接PF8。
(2)三极管的作用是因为单片机引脚驱动能力不够,通过BEEP引脚控制三级管的开关。
3、STM32CubeMX创建工程及配置
3.1、新建工程
(1)打开STM32CubeMX软件。
(2)点击File→NewProject。
(3)Commercial Part Number(商用部件号)处输入MCU型号,然后选择正确的单片机型号,点击Start Project(开始项目)。
(4)配置工程名、工程存放文件等。
点击Project Manager(项目经理)进行如下配置。
点击Code Generator(代码生成器)进行如下配置。
(5)点击GENERATE CODE生成KeilMDK工程。
3.2、配置时钟和GPIO
(1)HSE、LSE时钟源选择
- HSE:高速外部时钟源
- LSE:低速外部时钟源
- Disable:禁用
- BYPASS Clock Source:旁路时钟源
- Crystal/Ceramic Resonator :水晶/陶瓷共振器
- 一般选择水晶陶瓷共振器
- 旁路时钟源就是由外部给定一个时钟信号,一般用于作为同步时钟。
- 水晶/陶瓷共振器:指外接晶振,经过内部振荡电路产生时钟。
(2)GPIO配置如下
(3)时钟树配置
(4)配置完需要重新点击GENERATE CODE更新KeilMDK代码。
4、KeilMDK软件编写部分
4.1、程序编写
HAL_GPIO_WritePin(Beep_GPIO_Port, Beep_Pin, GPIO_PIN_RESET);
HAL_Delay(2);
HAL_GPIO_WritePin(Beep_GPIO_Port, Beep_Pin, GPIO_PIN_SET);
HAL_Delay(2);
4.2、完整工程下载地址
(1)完整工程存储在码云。
(2)STM32_CSDN: CSDN中STM32专栏的所有示例代码