OpenHarmony API-PwmInit()初始化 PWM 端口

介绍

初始化 PWM 端口,用于将指定的 PWM 端口初始化为可用状态

头文件

使用该函数需包含对应的 PWM 头文件,并确保项目依赖中启用了 PWM 组件:

#include "wifiiot_pwm.h"  // 新版本 PWM 接口头文件

定义

/**
 * @brief Initializes a PWM device.
 *
 * @param port Indicates the PWM port number.
 * @return Returns {@link WIFI_IOT_SUCCESS} if the operation is successful;
 * returns an error code defined in {@link wifiiot_errno.h} otherwise.
 * @since 1.0
 * @version 1.0
 */
unsigned int PwmInit(WifiIotPwmPort port);

说明

函数作用

PwmInit() 用于初始化 PWM(脉冲宽度调制)模块的指定端口,完成底层硬件的配置(如时钟、寄存器等),使其可以通过 PwmStart() 等函数输出 PWM 信号。

  • 参数 WIFI_IOT_PWM_PORT_PWM0:表示要初始化的 PWM 端口,这是一个枚举值,对应硬件上的第 0 号 PWM 通道(Hi3861 通常支持 PWM0、PWM1 等端口,具体取决于芯片型号)。详见链接

使用流程

初始化 PWM0 后,通常需要启动 PWM 输出并设置频率和占空比,完整流程如下:

#include "wifiiot_pwm.h"
#include "ohos_init.h"
#include "unistd.h"

void PwmDemo(void) {
    // 步骤1:初始化 PWM0 端口
    int ret = PwmInit(WIFI_IOT_PWM_PORT_PWM0);
    if (ret != 0) {
        printf("PWM0 初始化失败!错误码:%d\n", ret);
        return;
    }
    printf("PWM0 初始化成功\n");

    // 步骤2:启动 PWM 输出(频率 1000Hz,占空比 50%)
    // 频率 = 1000Hz(周期 1ms),占空比 = 500/1000 = 50%
    ret = PwmStart(WIFI_IOT_PWM_PORT_PWM0, 1000, 500);
    if (ret != 0) {
        printf("PWM0 启动失败!错误码:%d\n", ret);
        return;
    }

    // 持续输出 3 秒
    usleep(3000000);

    // 步骤3:停止 PWM 输出
    PwmStop(WIFI_IOT_PWM_PORT_PWM0);
    printf("PWM0 已停止\n");
}

// 注册入口函数
SYS_RUN(PwmDemo);

原文出处:/show_1GW1wvGSGDmz.html