跳转至

有源蜂鸣器

蜂鸣器介绍

蜂鸣器是一种一体化结构电子讯响器,采用直流电源供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器分为有源和无源,有源的直接接电源即可发声。无源的需要连接一个变化频率的电源上,才能发出声音。

有源蜂鸣器

接线要求

  • GND连接开发板GND

  • VCC连接开发板3.3V或5V

  • OUT连接GPIO14引脚(其它引脚也可以)

项目编写

  1. applications/genkipi/app 下新建 buzzer_active 文件夹
  2. buzzer_active 下新建 main.c 文件
  3. buzzer_active 下新建 BUILD.gn文件

代码部分

main.c 文件内容

#include <stdio.h>
#include <string.h>
#include <unistd.h>

#include "ohos_init.h"
#include "cmsis_os2.h"

#include "iot_gpio.h"
#include "iot_io.h"
#include "genki_pin.h"

static void start(void) {
    //初始化GPIO口
    IoTGpioInit(IOT_IO_NAME_14);
    //设置IO口功能为GPIO
    IoTIoSetFunc(IOT_IO_NAME_14, IOT_IO_FUNC_14_GPIO);
    //设置IO口输出方向:输出
    IoTGpioSetDir(IOT_IO_NAME_14,IOT_GPIO_DIR_OUT);
    //不断输出高低电压
    while (1){
        IoTGpioSetOutputVal(IOT_IO_NAME_14,IOT_GPIO_VALUE1);
        usleep(1000*1000);

        IoTGpioSetOutputVal(IOT_IO_NAME_14,IOT_GPIO_VALUE0);
        usleep(1000*1000);
    }
}

APP_FEATURE_INIT(start);

项目Build.gn

buzzer_active 目录下 BUILD.gn 内容为

static_library("buzzer_active") {
    sources = [
        "main.c"
    ]

    include_dirs = [
        "//utils/native/lite/include",
        "//base/iot_hardware/peripheral/interfaces/kits",
        "//device/itcast/genkipi/interfaces/kits"
    ]
}

外部Build.gn

buzzer_active文件夹上一级目录下BUILD.gn内容为

import("//build/lite/config/component/lite_component.gni")

lite_component("app") {
    features = [
        "buzzer_active"
    ]
}