当前位置: 首页 > news >正文

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

在这里插入图片描述

目录

  • 一、PWM 概述
  • 二、PWM 模块相关API
  • 三、接口调用实例
  • 四、PWM HDF驱动开发
    • 4.1、开发步骤(待续...)
  • 坚持就有收获

一、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控制器对象
  • 驱动调试

坚持就有收获

在这里插入图片描述

http://www.lryc.cn/news/301311.html

相关文章:

  • 001kafka源码项目gradle报错UnsupportedClassVersionError-kafka-报错-大数据学习
  • 单片机学习笔记---直流电机驱动(PWM)
  • Scrum敏捷培训机构推荐
  • 《Go 简易速速上手小册》第5章:并发编程(2024 最新版)
  • python - 模块
  • 【Web】CTFSHOW java刷题记录(全)
  • 全球付汇业务的流程
  • ubuntu22.04@laptop OpenCV Get Started: 012_mouse_and_trackbar
  • 信息安全性测试
  • [HTML]Web前端开发技术26(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页
  • 【Java】文件操作与IO
  • 开关电源电路主要元器件基础知识详解
  • - 项目落地 - 《选择项目工具的方法论》
  • 美国突然致敬中本聪
  • 精品springboot基于大数据的电脑主机硬件选购助手-可视化大屏
  • 全量和已占用字符集 、字符串统计
  • 什么是智慧公厕,智慧公厕有哪些功能
  • 给定n个结点m条边的简单无向图,判断该图是否存在鱼形状的子图:有一个环,其中有一个结点有另外两条边,连向不在环内的两个结点。若有,输出子图的连边
  • 深入理解lambda表达式
  • 删除 Windows 设备和驱动器中的 WPS网盘、百度网盘等快捷图标
  • 【深度学习:DICOM 注释工具】在 DICOM 注释工具中寻找的 7 个功能
  • Spring Boot与Kafka集成教程
  • 基于飞腾ARM+FPGA国产化计算模块联合解决方案
  • 关于DVWA靶场Could not connect to the database service的几种解决办法
  • 已解决ModuleNotFoundError: No module named ‘paddle‘异常的正确解决方法,亲测有效!!!
  • 并发编程之深入理解JVM并发三大特性
  • helm部署gitlab-runner问题解决
  • [嵌入式系统-28]:开源的虚拟机监视器和仿真器:QEMU(Quick EMUlator)与VirtualBox、VMware Workstation的比较
  • 计算机组成原理:存储系统【三】
  • 学习Android的第十三天