HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-PWM

本文介绍了PWM的工作原理,包括其占空比概念和操作流程。详细讲述了PWM模块的相关API,如初始化、停止和配置。还探讨了在HDF框架中的独立服务模式驱动开发,涉及驱动实例化、配置和控制器对象的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

一、PWM 概述

PWM(Pulse Width Modulation)又叫脉冲宽度调制,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化。占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是 50%。

请添加图片描述

计算公式如下:

占空比 = 高电平时间 周期时间 ∗ 100 % 占空比 = \frac{高电平时间}{周期时间} * 100\% 占空比=周期时间高电平时间100%

PWM 操作流程如下:

请添加图片描述

二、PWM 模块相关API

头文件路径:base/iothardware/peripheral/interfaces/inner_api/iot_pwm.h

接口函数描述
unsigned int IoTPwmInit(unsigned int port)PWM初始化
unsigned int IoTPwmDeinit(unsigned int port)PWM去初始化
unsigned int IoTPwmStart(unsigned int port, unsigned short duty, unsigned int freq)按配置的参数输出PWM信号
unsigned int IoTPwmStop(unsigned int port)停止PWM信号输出

三、接口调用实例

//代码功能:定义了 GPIO_00 号口为 PWM3_OUT 模式且输出比例为 50%的占空比,最后停止。

#include "iot_pwm.h"
IoTPwmInit(PWM3_OUT);
IoTPwmStart(PWM3_OUT,50,100);
IoTPwmStop(PWM3_OUT);

四、PWM HDF驱动开发

在HDF框架中,PWM接口适配模式采用独立服务模式(如图1所示)。在这种模式下,每一个设备对象会独立发布一个设备服务来处理外部访问,设备管理器收到API的访问请求之后,通过提取该请求的参数,达到调用实际设备对象的相应内部方法的目的。独立服务模式可以直接借助HDF设备管理器的服务管理能力,但需要为每个设备单独配置设备节点,增加内存占用。

独立服务模式下,核心层不会统一发布一个服务供上层使用,因此这种模式下驱动要为每个控制器发布一个服务,具体表现为:

驱动适配者需要实现HdfDriverEntry的Bind钩子函数以绑定服务。

device_info.hcs文件中deviceNode的policy字段为1或2,不能为0。

PWM模块各分层作用:

接口层提供打开PWM设备、设置PWM设备周期、设置PWM设备占空时间、设置PWM设备极性、设置PWM设备参数、获取PWM设备参数、使能PWM设备、禁止PWM设备、关闭PWM设备的接口。

核心层主要提供PWM控制器的添加、移除以及管理的能力,通过钩子函数与适配层交互。

适配层主要是将钩子函数的功能实例化,实现具体的功能。

图 1 PWM独立服务模式结构图

请添加图片描述

4.1、开发步骤(待续…)

PWM模块适配包含以下四个部分。

  • 驱实例化驱动入口
  • 配置属性文件
  • 实例化PWM控制器对象
  • 驱动调试

坚持就有收获

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻下一城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值