OpenHarmony鸿蒙硬件-控制蜂鸣器播放声音 作者:马育民 • 2025-09-29 11:03 • 阅读:10001 # 蜂鸣器介绍 https://www.malaoshi.top/show_1GW1wtTYVAmV.html # 开发 ### 步骤 1. 并初始化 2. 循环调用PwmStart、PwmStop方法 3. 配置模块构建脚本 4. 配置模块到应用子系统 5. 启用PWM功能(关键) ### 代码 创建文件 `beeper_demo.c` 代码如下: ``` #include #include #include "ohos_init.h" #include "cmsis_os2.h" #include "wifiiot_gpio.h" #include "wifiiot_gpio_ex.h" #include "wifiiot_pwm.h" #include "hi_pwm.h" void init(void) { GpioInit(); // 蜂鸣器引脚 设置为 PWM功能 IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_PWM0_OUT); PwmInit(WIFI_IOT_PWM_PORT_PWM0); } void BeeperDemo(void) { init(); while (1) { uint16_t freqDivisor = 34052; //占空比,频率 PwmStart(WIFI_IOT_PWM_PORT_PWM0, freqDivisor / 2, freqDivisor); usleep(2000000); PwmStop(WIFI_IOT_PWM_PORT_PWM0); usleep(1000000); } } SYS_RUN(BeeperDemo); ``` ### 代码解释 - GpioInit():初始化GPIO设备,详见[链接](https://www.malaoshi.top/show_1GW1wH597h1w.html "链接") - IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_PWM0_OUT):设置GPIO 9引脚功能,详见[链接](https://www.malaoshi.top/show_1GW1wHTm3p6I.html "链接") - WIFI_IOT_IO_NAME_GPIO_9:详见[链接](https://www.malaoshi.top/show_1GW1wHKNXl2a.html "链接") - WIFI_IOT_IO_FUNC_GPIO_9_PWM0_OUT:详见[链接](https://www.malaoshi.top/show_1GW1wHSaFlvB.html "链接") - PwmInit(WIFI_IOT_PWM_PORT_PWM0):详见[链接](https://www.malaoshi.top/show_1GW1wvGSGDmz.html "链接") - WIFI_IOT_PWM_PORT_PWM0:详见[链接](https://www.malaoshi.top/show_1GW1wuP89JXG.html "链接") - PwmStart(WIFI_IOT_PWM_PORT_PWM0, freqDivisor / 2, freqDivisor):详见[链接](https://www.malaoshi.top/show_1GW1x3wUy4B9.html "链接") - usleep(1000 * 1000):详见[链接](https://www.malaoshi.top/show_1GW1wJDkVcQB.html "链接") - PwmStop(WIFI_IOT_PWM_PORT_PWM0):详见[链接](https://www.malaoshi.top/show_1GW1wvdPezSb.html "链接") # 编辑BUILD.gn文件 ### 编辑1 在代码同级目录创建下面文件: ``` BUILD.gn ``` 内容: ``` static_library("traffic_demo") { sources = [ # "led_demo.c" # "traffic_light_demo.c" "beeper_music_demo.c", ] include_dirs = [ "//utils/native/lite/include", "//base/iot_hardware/interfaces/kits/wifiiot_lite", "//kernel/liteos_m/components/cmsis/2.0", ] } ``` ### 编辑2 编辑下面文件: ``` \\applications\sample\wifi-iot\app\BUILD.gn ``` 内容: ``` import("//build/lite/config/component/lite_component.gni") lite_component("app") { features = [ "code_v2.0/std_03:hello_demo", ] } ``` # 启用PWM功能 [OpenHarmony鸿蒙硬件-启用PWM功能(关键)](https://www.malaoshi.top/show_1GW1wuJn5Rze.html "OpenHarmony鸿蒙硬件-启用PWM功能(关键)") # 编译代码 详见链接: https://www.malaoshi.top/show_1GW1wTyUOMPk.html 原文出处:http://www.malaoshi.top/show_1GW1wtUGdpYZ.html