蜂鸣器介绍
https://www.malaoshi.top/show_1GW1wtTYVAmV.html
开发
步骤
- 并初始化
- 循环调用PwmStart、PwmStop方法
- 配置模块构建脚本
- 配置模块到应用子系统
- 启用PWM功能(关键)
代码
创建文件 beeper_demo.c
代码如下:
#include <stdio.h>
#include <unistd.h>
#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设备,详见链接
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_PWM0_OUT):设置GPIO 9引脚功能,详见链接
PwmInit(WIFI_IOT_PWM_PORT_PWM0):详见链接
- WIFI_IOT_PWM_PORT_PWM0:详见链接
PwmStart(WIFI_IOT_PWM_PORT_PWM0, freqDivisor / 2, freqDivisor):详见链接
usleep(1000 * 1000):详见链接
PwmStop(WIFI_IOT_PWM_PORT_PWM0):详见链接
编辑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功能
编译代码
详见链接:
https://www.malaoshi.top/show_1GW1wTyUOMPk.html
烧写固件到芯片
详见链接:
https://www.malaoshi.top/show_1GW1wWWflGbq.html