HarmonyOS系统内核中GPIO控制方法

       大家好,今天主要和大家聊一聊,如何使用鸿蒙系统控制开发板去点亮LED灯。

 

目录

第一:鸿蒙外设GPIO简介

第二:鸿蒙外设接口说明

GPIO使用流程图: ​编辑 第三:鸿蒙系统中API分析

第四:硬件设计

第五:软件设计

第六:编译调试

第七:运行结果


第一:鸿蒙外设GPIO简介

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

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

  • 设置管脚方向:方向可以是输入或者输出(暂不支持高阻态)

  • 读写管脚电平值:电平值可以是低电平或高电平

  • 设置管脚中断服务函数:设置一个管脚的中断响应函数,以及中断触发方式

  • 使能和禁止管脚中断:禁止或使能管脚中断

第二:鸿蒙外设接口说明

     GpioRead:读管脚电平值

     GpioWrite:写管脚电平值

     GpioSetDir:设置管脚方向

     GpioGetDir:获取管脚方向

     GpioSetIrq:设置管脚对应的中断服务函数

     GpioUnsetIrq:取消管脚对应的中断服务函数

     GpioEnableIrq:使能管脚中断

     GpioDisableIrq:禁止管脚中断

GPIO使用流程图:  第三:鸿蒙系统中API分析

       利用API函数控制对应的GPIO完成输出功能设置。

       GpioInit()

unsigned int GpioInit (void )

 功能描述:初始化GPIO外设。

      IoSetFunc()

unsigned int IoSetFunc (WifiIotIoName id, unsigned char val )

功能描述:设置GPIO引脚复用功能

参数:

名字描述
id表示GPIO引脚号.
val表示GPIO复用功能

     GpioSetDir()

unsigned int GpioSetDir (WifiIotGpioIdx id, WifiIotGpioDir dir )

功能描述:设置GPIO输出方向

参数:

名字描述
id表示GPIO引脚号.
dir表示GPIO输出方向.

第四:硬件设计

    本案例使用板载的LED来验证GPIO的输出功能,在开发板上LED的连接电路图如下所示,LED的控制引脚与主控芯片的GPIO_2连接,所以需要编写软件去控制GPIO_2输出高低电平实现LED灯的亮灭。

 

第五:软件设计

    主要代码分析

    LedTask()为LED灯测试主任务,该任务先调用GpioInit()初始化GPIO,因为LED灯的控制引脚接在GPIO_2上,所以通过调用IoSetFunc()和GpioSetDir()将GPIO_2设置为普通GPIO的输出模式。最后在死循环里面间隔 1s 输出GPIO_2的高低电平,实现LED灯闪烁的现象。

static void LedTask(void)
{GpioInit();//初始化GPIOIoSetFunc(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_IO_FUNC_GPIO_2_GPIO);//设置GPIO_2的复用功能为普通GPIOGpioSetDir(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_GPIO_DIR_OUT);//设置GPIO_2为输出模式while (1) {GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2, 1);//设置GPIO_2输出高电平点亮LED灯usleep(1000000);//延时1sGpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2, 0);//设置GPIO_2输出低电平熄灭LED灯usleep(1000000);//延时1s}
}

第六:编译调试

    修改BUILD.gn文件

    修改applications\BearPi\BearPi-HM_Nano\sample 路径下 BUILD.gn 文件,指定 led_example 参与编译。

"B1_basic_led_blink:led_example",
#"B2_basic_button:button_example",
#"B3_basic_pwm_led:pwm_example",
#"B4_basic_adc:adc_example",
#"B5_basic_i2c_nfc:i2c_example",
#"B6_basic_uart:uart_example",

第七:运行结果

    实例代码编译烧录后,按下开发板的RESET按键,开发板的LED灯开始闪烁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35352.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

harmonyos鸿蒙系统开发者工具 DevEco Studio详解安装

文章适合新手了解DevEco Studio开发工具。文章在编写过程中难免有疏漏和错误,欢迎大佬指出文章的不足之处;更多内容请点进👉 Lino_White 👈查看。 未来的世界充满着各式各样的数据,我们该怎么好好利用起来呢&#xff1…

我的HarmonyOS实战——鸿蒙系统初定义

【本文正在参与“有奖征文 | HarmonyOS征文大赛” 】活动链接 鸿蒙系统介绍 1 官方定义 鸿蒙是一个全场景,面向未来的操作系统。 解释: 鸿蒙并不是一个单纯的手机操作系统,而是手机智能设备的总称。可以安装在包括手机、手表、无人机等很…

我的HarmonyOS实战——鸿蒙系统开发入门学习

1.为什么要学习鸿蒙开发? 开发者的角度: 安卓操作系统连接外部设备时,发现,配对,连接,组合,验证每一步都不能少。连接上了之后才能调用控制第三方设备。换一个设备之后,所有的代码…

HarmonyOS系统中内核实现MQTT协议开发的方法

大家好,今天主要来聊一聊,如何使用鸿蒙开始实现MQTT协议开发的方法 第一:MQTT基本原理 在MQTT协议通讯中,有两个最为重要的角色。它们分别是服务端和客户端。首先我们来初步了解一下它们。 MQTT服务端 MQTT服务端通常是一台…

荣耀30能用鸿蒙系统吗,华为荣耀30 Pro开始测试使用鸿蒙OS系统!

据系统之家了解 最近荣耀30 Pro手机已经开始测试使用鸿蒙OS系统。虽然之前因为多方原因,华为不得已将荣耀转让出去,但是就目前来说两者联系还是非常的大的。 此外,他还透露荣耀 30 系列、V30 系列、Play4 Pro 下个月将升级到华为鸿蒙系统。 荣…

HarmonyOS系统中内核实现UART串口通信方法

大家好,今天主要聊一聊,如何使用鸿蒙系统实现UART数据的读写方法。 目录 第一:串口通信基本原理 第二:鸿蒙UART API分析 第三:硬件设计 第四:软件设计 第五:编译调试 第六&#xff1a…

HarmonyOS鸿蒙开发入门 :鸿蒙系统介绍

系统定位 HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。 在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全…

鸿蒙系统(HarmonyOS)体验怎么样

华为鸿蒙系统体验几天后,真的非常好用,首先华为比较聪明的地方,没有改变人们使用习惯。当然被竞争对手吐槽,说界面和安卓一样。这些喷子们以为华为用户都是菜鸟吗?里面很多都是懂手机的人,很多都是第一代玩…

鸿蒙系统是否可以用来做服务器,小米手机也能使用鸿蒙系统?国内厂商使用鸿蒙热情高涨...

原标题:小米手机也能使用鸿蒙系统?国内厂商使用鸿蒙热情高涨 自从6月2日HarmonyOS 2正式发布以来,国内针对鸿蒙系统的热议一直不减。对于新买的华为手机用户来说,能第一批次使用上国产的手机系统,也确实过了一把瘾。本次手机系统更新,华为采用分批次更新。 一是因为手机系…

为什么要学习鸿蒙,HarmonyOS不只是操作系统

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 前言 对于IT行业,头部力量或者已经形成生态的东西…

华为HarmonyOS鸿蒙系统介绍,华为鸿蒙OS系统怎么样 华为HarmonyOS鸿蒙系统介绍

华为鸿蒙OS系统怎么样?华为在8月9日的2019华为开发者大会上正式发布了华为HarmonyOS鸿蒙系统,大家知道这个系统具体是用在哪些产品上的吗?有哪些功能呢?能兼容别的系统吗?下面小编为大家带来了华为HarmonyOS鸿蒙系统介绍,一起来看看吧。 华为HarmonyOS鸿蒙系统介绍 在8月…

华为鸿蒙系统HarmonyOS学习之十:鸿蒙HarmonyOS微内核技术

华为鸿蒙系统HarmonyOS学习之十:鸿蒙HarmonyOS微内核技术 一、前言 把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种…

鸿蒙存储系统文件系统,鸿蒙liteWearable操作文件系统的正确姿势

10月20号我在官方论坛提了一个问题,请问文件存储接口的根路径是什么? 原因是在看官方文档学习时测试文件存储的API 作为一个有经验(一点点)的开发人员,把代码贴到onShow()中直接执行。最终报错301,文件不存在。报错了那一定是我没…

华为鸿蒙harmony操作系统 安装使用及下载地址

目录 鸿蒙harmony系统 安装方式 选择我已复制该虚拟机 登录系统 系统界面 下载地址 鸿蒙harmony系统 鸿蒙系统是华为基于Ubuntu linux发行版定制化开发的一款操作系统,将主要应用于Android系统的定制化开发。 已将鸿蒙系统在VMware虚拟机上成功进行了安装&a…

华为鸿蒙系统HarmonyOS学习之十四:方舟编译器

华为鸿蒙系统HarmonyOS学习之十四:方舟编译器 方舟编译器是华为自研的一个支持多种编程语言,多种芯片平台的联合编译编程平台,而经过方舟编译器编译适配后的APP,运行效率会大大提高,拥有更为流畅的体验,足以…

念一句咒语 AI 就帮我写一个应用,我人麻了...

原文链接:https://forum.laf.run/d/232 作为人类,我们时常会有自己独特的想法和脑洞大开的创意。然而,这些想法往往因为成本过高而无法实现,毕竟每个人的能力和精力都是有限的,尤其是对于程序员而言,不可能…

念一句咒语 AI 就帮我写一个应用,我人麻了…

作为人类,我们时常会有自己独特的想法和脑洞大开的创意。然而,这些想法往往因为成本过高而无法实现,毕竟每个人的能力和精力都是有限的,尤其是对于程序员而言,不可能擅长所有技术栈。为了实现一个想法去花费大量的精力…

UML 简易使用教程

最近刚好有空,遂决定对应 UML 常用的一些图进行整理,供自己以及需要的人查阅。 UML 分为静态模型与动态模型。静态模型描述一个系统的静态特征,固定的框架结构。包括用例图、类图、对象图、组件图、部署图;动态模型包括时序图、协…

设计模式中的UML类图

在线绘图工具: https://app.diagrams.net/ https://www.processon.com/ 第一个需要挂梯子,但很好用,本文用它绘制样例图 最近在看Head First一书,即使在软件工程的课程中学习过UML类图如何绘制,但显然已经忘掉很多了…

面向对象分析之UML

大一的时候就已经接触过UML图,当时也只是懵懵懂懂,结合项目代码大概知道这是一种类似流程图的东西。如今要软考了,重新接触UML才知道这不仅仅只是流程图那么简单。 简介 UML,也就是所谓的统一建模语言,这是一种被广泛接受的面向对象的分析方法。说是一种语言,可它并不像…