ATK-MB003模块使用说明
1,硬件连接
这里以正点原子M48Z-M3最小系统板STM32F103版为例,给大家介绍一下模块和板卡的连接方法。其它板卡与模块的硬件连接方法,请大家在“ATK-MB003有源蜂鸣器模块\3,程序源码\相应板卡例程文件夹\readme.txt”路径下查看。
有源蜂鸣器模块可通过杜邦线与正点原子M48Z-M3最小系统板STM32F103版进行连接,具体的连接关系,如下表所示:

表1.1.1有源蜂鸣器模块与M48Z-M3最小系统板STM32F103版连接关系
2,实验功能
2.1 有源蜂鸣器模块测试实验
2.1.1 功能说明
在本实验中,串口会打印提示信息。需要查看这部分实验信息的用户,可用杜邦线将最小系统板STM32F103的PA9引脚和GND连接至外部的USB转串口设备,这样就可以通过XCOM上位机查看串口打印的信息了。
本实验通过开发板上的两个独立按键控制有源蜂鸣器。按键 KEY_UP 控制蜂鸣器关闭,按键 KEY0 控制蜂鸣器打开
开发板的LED0闪烁,提示程序运行。
2.1.2 源码解读
打开本实验的工程文件夹,能够在./Drivers/BSP目录下看到ATK_BUZZER文件夹,其中ATK_BUZZER文件夹中就包含了有源蜂鸣器模块的驱动文件,如下图所示:

图2.1.2.1有源蜂鸣器模块驱动代码
2.1.2.1 有源蜂鸣器模块驱动
下面将简要介绍atk_buzzer.c中几个重要的API 函数。
1. 函数atk_buzzer_init ()
该函数用于初始化有源蜂鸣器模块,具体的代码,如下所示:
/**
* @brief 蜂鸣器模块初始化函数
* @param 无
* @retval 无
*/
void atk_buzzer_init(void)
{
GPIO_InitTypeDef gpio_init_struct;
ATK_BUZZER_GPIO_CLK_ENABLE(); /* 时钟使能 */
gpio_init_struct.Pin = ATK_BUZZER_GPIO_PIN; /* ATK_BUZZER引脚 */
gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP; /* 推挽输出 */
gpio_init_struct.Pull = GPIO_PULLDOWN; /* 下拉 */
gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH; /* 高速 */
HAL_GPIO_Init(ATK_BUZZER_GPIO_PORT, &gpio_init_struct);
ATK_BUZZER(0); /* 关闭 蜂鸣器 */
}
从上述代码可以看出,atk_buzzer_init() 函数的作用是初始化有源蜂鸣器模块的 BZZ 引脚。具体来说,它启用了蜂鸣器引脚的时钟,并将引脚配置为推挽输出模式,且设置为下拉状态,输出频率为高速模式。最后,通过调用 ATK_BUZZER(0) 函数,将 BZZ 引脚设置为低电平,确保蜂鸣器在初始化时处于关闭状态(不发声)
2.1.2.2 实验测试代码
实验的测试代码为文件 demo.c,在工程目录下的 User 子目录中。测试代码的入口函数为 demo_run(),具体的代码,如下所示:
/**
* @brief 例程演示入口函数
* @param 无
* @retval 无
*/
void demo_run(void)
{
uint8_t key = 0, t = 0;
key_init(); /* 初始化按键 */
atk_buzzer_init(); /* 初始化蜂鸣器 */
while (1)
{
key = key_scan(0);
if(key == KEY0_PRES)
{
ATK_BUZZER(1); /* 打开蜂鸣器 */
printf("打开蜂鸣器\r\n");
}
else if(key == WKUP_PRES)
{
ATK_BUZZER(0); /* 关闭蜂鸣器 */
printf("关闭蜂鸣器\r\n");
}
delay_ms(10);
if((t++ % 50) == 0)
{
LED0_TOGGLE();
}
}
}
从上述代码可以看出,整个测试代码的逻辑较为简单。首先,初始化按键和蜂鸣器模块。随后,在 while 循环中,通过检测按键状态来控制蜂鸣器的开关。当 KEY0 被按下时,蜂鸣器被打开;当 WKUP 键被按下时,蜂鸣器关闭,并通过串口打印提示信息。最后,LED0的闪烁表示程序正常运行。
2.1.3 实验现象
将有源蜂鸣器模块按照第一节“硬件连接”中介绍的连接方式与开发板连接,并将实验代码编译烧录至开发板中,本实验使用串口输出调试信息,因此需将开发板的 PA9连接至 DAP 虚拟串口(或 USB 转 TTL 模块)的 RX引脚。完成连接后,可通过串口调试助手查看实验信息输出,如下图所示:

图2.1.3.2 串口调试助手显示内容
按键控制逻辑部分:
当按下 KEY0 按键时,蜂鸣器将响起,并通过串口输出“打开蜂鸣器”提示。
当按下 WKUP 按键时,蜂鸣器关闭,串口输出“关闭蜂鸣器”提示。