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

这篇具有很好参考价值的文章主要介绍了HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-GPIO。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-GPIO,OpenHarmony鸿蒙攻城记,harmonyos,物联网,华为,OpenHarmony,LiteOS,鸿蒙

轻量系统设备通常需要进行外设控制,例如温湿度数据的采集、灯开关的控制,因此在完成内核开发后,需要进行设备驱动的开发。

主要Hi3861芯片介绍如何运用 IoT 硬件子系统进行轻量系统设备的驱动开发。

在轻量系统的联接模组中,智能家居远程控制能力的实现,最终是通过 IoT 硬件子系统部件发送指令到特定的家居设备。

Hi3861芯片提供设备操作接口有:GPIO、PWM、UART、I2C、SPI、ADC、WATCHDOG、FLASH、LOWPOWER、RESET 等。

一、GPIO 概述

GPIO(General-purpose input/output)即通用型输入输出,用于控制芯片引脚的数字输入和数字输出。通常,GPIO 控制器通过分组的方式管理所有 GPIO 管脚,每组 GPIO 有一个或多个寄存器与之关联,通过读写寄存器完成对 GPIO 管脚的操作。

GPIO 是芯片上一根能完成多种功能的管脚,用户可以通过 GPIO 口和硬件进行数据交互(如UART),控制硬件工作(如 LED,蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。

例如 GPIO_00 引脚复用表如下:(剩余引脚复用信息,请查看厂商芯片手册)。

管脚 管脚名称 类型 驱动(mA) 电压(V) 描述
复用信号0:GPIO_00
复用信号1:UART1_TXD
复用信号2:SPI1_CLK
2 GPIO_00 I/O 1 3.3/1.8 复用信号3:PWM3_OUT
复用信号4:I2C_SDA
复用信号5:RTC_OSC_32K
复用信号6:RTC32K_XOUT
复用信号7:保留

GPIO 接口定义了操作 GPIO 管脚的标准方法集合,包括:

  • 设置管脚方向:方向可以是输入或者输出(暂不支持高阻态)
  • 读写管脚电平值:电平值可以是低电平或高电平
  • 设置管脚中断服务函数:设置一个管脚的中断响应函数,以及中断触发方式
  • 使能和禁止管脚中断:禁止或使能管脚中断

GPIO 引脚复用流程如下:

HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-GPIO,OpenHarmony鸿蒙攻城记,harmonyos,物联网,华为,OpenHarmony,LiteOS,鸿蒙

二、GPIO模块相关API

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

接口函数 描述
unsigned int IoTGpioInit(unsigned int id) 确定GPIO管脚号
unsigned int IoTGpioSetDir(unsigned int id, IotGpioDir dir) 设置管脚方向
unsigned int IoTGpioSetOutputVal(unsigned int id, IotGpioValue val) 设置管脚电平
unsigned int IoTGpioRegisterIsrFunc(unsigned int id, IotGpioIntType intType, IotGpioIntPolarity intPolarity, GpioIsrCallbackFunc func, char *arg) 设置管脚中断

三、实例

//代码功能:定义 GPIO_00 号口为输出模式且输出高电平。
#include "iot_gpio.h"
IoTGpioInit(GPIO_00);
IoTGpioSetDir(GPIO_00 , IOT_GPIO_DIR_OUT);
IoTGpioSetOutputVal(GPIO_00 , IOT_GPIO_VALUE0);
while (1) {
    IoTGpioSetOutputVal(LED_GPIO, IOT_GPIO_VALUE1);
    sleep(1);
    IoTGpioSetOutputVal(LED_GPIO, IOT_GPIO_VALUE0);
    sleep(1);
}

四、GPIO HDF驱动开发

在HDF框架中,同类型设备对象较多时(可能同时存在十几个同类型配置器),若采用独立服务模式,则需要配置更多的设备节点,且相关服务会占据更多的内存资源。相反,采用统一服务模式可以使用一个设备服务作为管理器,统一处理所有同类型对象的外部访问(这会在配置文件中有所体现),实现便捷管理和节约资源的目的。GPIO模块采用统一服务模式(如图1所示)。

在统一模式下,所有的控制器都被核心层统一管理,并由核心层统一发布一个服务供接口层,因此这种模式下驱动无需再为每个控制器发布服务。

GPIO模块各分层作用:

接口层:提供操作GPIO管脚的标准方法。

核心层:提供GPIO管脚资源匹配,GPIO管脚控制器的添加、移除以及管理的能力,通过钩子函数与适配层交互,供芯片厂家快速接入HDF框架。

适配层:由驱动适配者将钩子函数的功能实例化,实现与硬件相关的具体功能。

HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-GPIO,OpenHarmony鸿蒙攻城记,harmonyos,物联网,华为,OpenHarmony,LiteOS,鸿蒙

4.1、LED驱动程序(待续…)

4.2、LED驱动配置(待续…)

坚持就有收获

HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-GPIO,OpenHarmony鸿蒙攻城记,harmonyos,物联网,华为,OpenHarmony,LiteOS,鸿蒙文章来源地址https://www.toymoban.com/news/detail-834478.html

到了这里,关于HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-GPIO的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核内存管理-动态内存

    动态内存管理,即在内存资源充足的情况下,根据用户需求,从系统配置的一块比较大的连续内存(内存池,也是堆内存)中分配任意大小的内存块。当用户不需要该内存块时,又可以释放回系统供下一次使用。 初始化 LOS_MemInit。初始一个内存池后生成一个内存池控制头、尾

    2024年02月20日
    浏览(78)
  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-消息队列queue

    队列又称消息队列,是一种常用于任务间通信的数据结构。队列接收来自任务或中断的不固定长度消息,并根据不同的接口确定传递的消息是否存放在队列空间中。 任务能够从队列里面读取消息,当队列中的消息为空时,挂起读取任务;当队列中有新消息时,挂起的读取任务

    2024年02月20日
    浏览(49)
  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-互斥锁mux

    互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理。 任意时刻互斥锁的状态只有两种,开锁或闭锁。当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。当该任务释放它时,该互斥锁被开锁,任务失去该互斥锁的

    2024年02月20日
    浏览(49)
  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-信号量semaphore

    信号量(Semaphore)是一种实现任务间通信的机制,可以实现任务间同步或共享资源的互斥访问。 一个信号量的数据结构中,通常有一个计数值,用于对有效资源数的计数,表示剩下的可被使用的共享资源数,其值的含义分两种情况: 0,表示该信号量当前不可获取,因此可能

    2024年02月19日
    浏览(47)
  • HCIA-HarmonyOS设备开发认证-HarmonyOS简介

    本章主要介绍HarmonyOS分布式操作系统的概念、关键技术与能力以及HarmonyOS典型的应用场景。 学习完成本课程后,您将能够: 了解HarmonyOS的相关概念和产品定位; 了解HarmonyOS的技术架构; 了解HarmonyOS的关键特性。 HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统。

    2024年01月25日
    浏览(44)
  • HCIA-HarmonyOS设备开发认证-序

    最近涉及到HarmonyOS鸿蒙系统设备开发,在网络上已经有很多相关资料,视频教程,我也移植了公司的一个stm32G474板卡,运行LiteOS-m L0系统。 一面看资料一面移植,遇到不少坑,当看到运行的LOGO时,那是非常激动了。 由于没有系统性的学习,难免遇到不少坑,自己也决定找个

    2024年01月20日
    浏览(53)
  • HCIA-HarmonyOS应用开发工程师 V2.0 模拟考试

    低代码开发提供UI可视化开发能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果,所见即所得。通过拖拽式编排、可视化配置的方式,帮助开发者减少重复性的代码编写,快速地构建多端应用程序。 正确(True) 在使用ArkTS语言开发界面UI代码过程中,如果添加或删除

    2024年02月04日
    浏览(63)
  • HCIA-HarmonyOS Application Developer学习笔记

    HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统,它是一个全场景分布式智慧操作系统,覆盖了1+8+N全场景终端设备,其中手机是整个分布式能力的核心。 与原生Android 系统对比,HarmonyOS 不仅可以支持手机,还可以支持电脑、智慧屏、穿戴设备、智能家居、车机系

    2024年02月13日
    浏览(38)
  • HCIA-HarmonyOS Application Developer——题目集2

    题目1 1、HarmonyOS的\\\"1+8N”战略中的\\\"1\\\"指的是什么? A、智慧屏 B、平板电脑 C、手表 D、手机 解析:( D ) HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统,是一个全场景分布式智慧操作系统,覆盖了1+8+N全场景终端设备,其中手机是整个分布式能力的核心。 题目2

    2024年02月13日
    浏览(41)
  • HCIA-HarmonyOS Application Developer——题目集4

    题目1 1、(多选)对于HarmnyOS设备,传统蓝牙本机管理涉及下列哪些操作? A、扫描和取消扫描周边蓝牙设备 B、打开和关闭蓝牙 C、向远端设备发起配对 D、设置和获取本机蓝牙名称 解析:( ABD ) 传统蓝牙 指的是Bluetooth3.0以下的蓝牙,而 低功耗蓝牙 指的是Bluetooth4.0以上的蓝

    2024年02月07日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包