介绍
初始化 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);