OpenHarmony轻量级驱动开发

news/2024/7/21 11:24:21 标签: harmonyos

OpenHarmony轻量级驱动开发

思维导图: https://download.csdn.net/download/lanlingxueyu/88817155

GPlO(General-purpose input/output)即通用型输入输出

描述

GPlO(General-purpose input/output)即通用型输入输出。通俗地说,GPlO口就是一些引脚可以通过它们输出高低电平或者读入引脚的高低电平状态。GPIO控制器通过分组的方式管理所有GPIO管脚,每组GPIO有一个或多个寄存器与之关联,通过读写寄存器完成对GPIO管脚的操作

GPIO接说明

·GPIO是芯片上一根能完成多种功能的管脚,用户可以通过GPIO口和硬件进行数据交互(如UART),控制硬件工作(如LED,蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。
头文件路径:base/iot_hardware/peripheral/interfaces/kits/iot_gpio.h

GPIO接口调用

####include"iot_gpio.h
loTGpiolnit(GPlO_oo)
loTGpioSetDir(GPIO_OO,IOT_GPIO DIR _OUT)
loTGpioSetOutputVal(GPIO_OO,IOT_GPIO_EDGE_RISE_LEVEL_HIGH);

预编译头文件“iot_gpio.h”
代码功能:定义了GPIO00号口为输出模式且输出高电平

PWM(Pulse Width Modulation)又叫脉冲宽度调制

描述

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

PWM接口说明

PWM接口定义了完成PWM传输的通用方法集合
头文件路径:base/iot_hardware/peripheral/interfaces/kits/iot_pwm.h
初始化PWM -> 设置分频率 -> 设置占空比 -> 使能PWM -> 停止PWM

PWM接口调用

####include "iot pwm.h’
IoTPwmlnit(PWM3 OUT)
loTPwmStart(PwM3_oUT,50,10o);
IoTPwmStop(PWM3_OUT);

预编译头文件“iot_pwm.h”
代码功能:定义了GPIO00号口为PWM3OUT模式且输出数值为50%的占空比,最后停止
GPIO_00号口对应Hi3861芯片的PWM3

UART (UniversalAsynchronous Receiver/Transmitter) 通用异步收发传输器

描述

UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter 的缩写,是通用串行数据总线,用于异步通信。该总线双向

http://www.niftyadmin.cn/n/5370809.html

相关文章

【C语言】模拟实现库函数qsort

qsort的头文件是stdlib.h 他的四个参数分别是要进行排序的数组base的首地址,base数组的元素个数,每个元素的大小,以及一个函数指针,这个函数指针指向了一个函数,这个函数的参数是两个void*类型的指针,返回类…

Maven私服部署与JAR文件本地安装

Nexus3 是一个仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。 平常我们在获取 maven 仓库资源的时候,都是从 maven 的官方(或者国内的镜像)获取。团队的多人员同样的依赖都要从远程获取一遍,从网络方…

【原创 附源码】Flutter海外登录--Tiktok登录最详细流程

最近接触了几个海外登录的平台,踩了很多坑,也总结了很多东西,决定记录下来给路过的兄弟坐个参考,也留着以后留着回顾。更新时间为2024年2月7日,后续集成方式可能会有变动,所以目前的集成流程仅供参考&#…

LeetCode 207:课程表(图论,利用拓扑排序判断是否有环)

题目 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。 …

Java基础常见面试题总结-集合(二)

迭代器 Iterator 是什么? Iterator模式用同一种逻辑来遍历集合。它可以把访问逻辑从不同类型的集合类中抽象出来,不需要了解集合内部实现便可以遍历集合元素,统一使用 Iterator 提供的接口去遍历。它的特点是更加安全,因为它可以…

github拉取项目,pycharm配置远程服务器环境

拉取项目 从github上拉取项目到pycharmpycharm右下角选择远程服务器上的环境 2.1. 如图 2.2. 输入远程服务器的host,port,username,password连接 2.3. 选择服务器上的环境 链接第3点 注:如果服务器上环境不存在,先创建…

Leetcode—38. 外观数列【中等】

2024每日刷题&#xff08;111&#xff09; Leetcode—38. 外观数列 实现代码 class Solution { public:string countAndSay(int n) {string ans "1";while(--n) {string next;for(int i 0; i < ans.size(); i) {int cnt 1;char c ans[i];while(i 1 < an…

【linux温故】CFS调度

写在前面 网上关于CFS 调度器的文章多如牛毛&#xff0c;没必要自己写。很多文章写的都非常好。 很多文章里&#xff0c;关键的技术点&#xff0c;都是一样的&#xff0c;只是各个文章说法不一样。 掌握了核心的&#xff0c;关键的&#xff0c;其他的&#xff0c;如果工作中…