今天主要和大家聊一聊,如何使用国产鸿蒙操作系统来控制led硬件。

第一:国产鸿蒙系统简介

鸿蒙系统是基于微内核的新型分布式操作系统,为所有设备和场景提供全新的用户体验,并在场景体验上更加流畅,支持设备的无缝协作。它是一个全场景,面向未来的操作系统,可以安装在手机、手表、无人机等多种设备上。

鸿蒙的开发分为两个方向,南向和北向。北向主要指的是应用开发,应用开发有专用的IDE工具;采用的主流开发语言有:java ,js 等。南向主要指的是设备开发,有基于LiteOS微内核开发的,轻量级、功耗低,可以应用在智能设备上,并可以利用软总线连接。

第二:国产鸿蒙硬件分析

既然这次是聊一聊鸿蒙系统灯的控制,先来认识一下对应的GPIO。本次实验中的用到的Hi3861芯片内部包含了GPIO模块。该模块主要可以实现芯片引脚上的数字输入或输出功能。我们知道由于机器只能识别0和1的数字量,所以平常所说的GPIO口的输入输出状态指的就是0或1状态,也就是常说的0代表低电平,1代表高电平。

上面这个原理图看完有啥感受,一个字绝,是不是很清晰

。分析如下:

J3是两根排针,默认由跳帽连接,是导通状态的,可视为直连状态的。LEDI是核心板的可编程LED灯,它的一端通过排针J3和主控芯片GPIO09引脚连接,另一端通过电阻R6连接到3V3电源。

由于LED1和主控芯片GPI009引脚相连,因此主控芯片GPIO09引脚输出不同电平即可控制LED1的状态。结合原理图分析可知,主控芯片GPI009引脚状态和LED1状态的对应关系为低电平点亮,高电平熄灭。

第三:代码实现方法

鸿蒙IOT的硬件提供了控制外设的应用程序编程接口,通俗一点也是传说中的API,GPIO可以利用相关的API函数实现控制,主控代码如下所示:

#include <stdio.h>#include <unistd.h>#include "cmsis_os2.h"#include "ohos_init.h"#include "wifiiot_gpio.h"#include "wifiiot_gpio_ex.h"#define LED_TASK_STACK_SIZE 1024#define LED_TASK_PRIO 25static void* GpioTask(const char* arg){    (void)arg;    GpioInit();  IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_GPIO);    GpioSetDir(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_DIR_OUT);    while (1) {            printf(" LED_SPARK! \n");            GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_VALUE0);            osDelay(50);            GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_VALUE1);            osDelay(50);        }    return NULL;}static void GpioExampleEntry(void){    osThreadAttr_t attr;    attr.name = "GpioTask";    attr.attr_bits = 0U;    attr.cb_mem = NULL;    attr.cb_size = 0U;    attr.stack_mem = NULL;    attr.stack_size = LED_TASK_STACK_SIZE;    attr.priority = LED_TASK_PRIO;    if (osThreadNew((osThreadFunc_t)GpioTask, NULL, &attr) == NULL) {        printf("[GpioExample] Falied to create GpioTask!\n");    }}SYS_RUN(GpioExampleEntry);

写到这里,本以为要结束了,其实万里长征才刚刚开始

。要想让代码运行起来,还需要对系统进行配置和编译如视频所示。​

​第四:效果演示

鸿蒙系统

鸿蒙系统控制LED的实现方法之经典相关推荐

  1. Python编程学习:让函数更加灵活的*args和**kwargs(设计不同数量参数的函数)的简介、使用方法、经典案例之详细攻略

    Python编程学习:让函数更加灵活的*args和**kwargs(设计不同数量参数的函数)的简介.使用方法.经典案例之详细攻略 目录 *args和**kwargs(设计不同数量的参数函数)的简介 1 ...

  2. Python语言学习之图表可视化:python语言中可视化工具包的简介、安装、使用方法、经典案例之详细攻略

    Python语言学习之图表可视化:python语言中可视化工具包的简介.安装.使用方法.经典案例之详细攻略 目录 python语言中可视化工具包的简介 python语言中可视化工具包的安装 pytho ...

  3. Graphviz:可视化工具Graphviz的简介、安装、使用方法、经典案例之详细攻略

    Graphviz:可视化工具Graphviz的简介.安装.使用方法.经典案例之详细攻略 目录 Graphviz的简介 Graphviz的安装 Graphviz的使用方法 Graphviz的经典案例 G ...

  4. java纪元时间_Java实现纪元秒和本地日期时间互换的方法【经典实例】

    Java实现纪元秒和本地日期时间互换的方法[经典实例] 发布时间:2020-09-07 22:58:35 来源:脚本之家 阅读:71 作者:FrankYou 本文实例讲述了Java实现纪元秒和本地日期 ...

  5. [LED]如何配置LCD背光和LED,调试方法

    [LED]如何配置LCD背光和LED,调试方法 [DESCRIPTION] 如何配置LCD背光和LED,调试方法 [SOLUTION] LCD背光和LED配置文件 alps/custom/<pr ...

  6. 如何更换安装鸿蒙系统,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...

    华为鸿蒙系统2.0如何进行安装?现在已经可以安装鸿蒙系统2.0,但是你不清楚安装,下面就让浏览器小编为大家带来,鸿蒙系统2.0安装方法详细介绍. 部分更新了华为鸿蒙OS用户表示,安卓和鸿蒙的应用软件都 ...

  7. 鸿蒙系统可以安装的浏览器,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...

    华为鸿蒙系统2.0如何进行安装?现在已经可以安装鸿蒙系统2.0,但是你不清楚安装,下面就让浏览器小编为大家带来,鸿蒙系统2.0安装方法详细介绍. 部分更新了华为鸿蒙OS用户表示,安卓和鸿蒙的应用软件都 ...

  8. ML之LIME:可解释性之SP-LIME的简介、原理、使用方法、经典案例之详细攻略

    ML之LIME:可解释性之SP-LIME的简介.原理.使用方法.经典案例之详细攻略 目录 SP-LIME简介-Submodular Pick LIME子模挑选 1.Submodular优化过程 Sub ...

  9. LED广告牌制作方法

    LED广告牌制作方法开始啦!   LED广告牌制作方法 LED广告牌就是充分利用LED发光二极管的节能环保的特点,制作出五光十色的招牌,广告牌又名:LED电子灯箱,LED发光字,LED防水招牌, LE ...

最新文章

  1. 如何让 Mybatis 自动生成代码,提高开发效率
  2. linux中的fork函数详解
  3. 使用Blink SQL+UDAF实现差值聚合计算
  4. Nginx源码分析-启动初始化过程(一)
  5. 学成在线案例——黑马程序员pink老师\思路讲解\完整源代码
  6. Shell脚本学习-阶段九-数据库被攻击恢复
  7. Python reversed()函数
  8. Python(8)_初学Python
  9. 我的世界服务器领地怎么无限大,我的世界:Minecraft都市传说,MC无限大?让我们一起寻找边界吧...
  10. USB协议(1)USB基础知识
  11. 最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)
  12. 都9012年了!假借区块链敛财骗局仍一桩接一桩
  13. 本科专业计算机课程,本科计算机专业有哪些课程
  14. 北京大学计算机学院课程表,北京大学课程表.PDF
  15. java diamond 运算符_解决:Java source1.5不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符...
  16. java将小写的日期转换为大写的日期
  17. SAP ALV报表开发实战案例(三)
  18. 百度官方:网站优化中死链处理指南与总结
  19. 1131 拯救大兵瑞恩(单源最短路径扩展-拆点(dp))
  20. linux镜像包含redis吗,Linux虚拟机镜像\redis安装

热门文章

  1. artifact计算机专业术语,术语表
  2. 全球及中国金融科技即服务平台行业动态发展与运营规模研究报告2022版
  3. Python 函数绘图及函数图像微分与积分
  4. 第一章测试概述04-软件质量
  5. 机房搬迁IBM磁盘阵列哪些信息需要抓取
  6. 界面原型创建工具Axure使用教程之一:基本操作
  7. LUA源码分析二:了解lua的文件结构和思考方式
  8. Excel多工作薄汇总——《超级处理器》应用
  9. 系统架构师(软考)----数据库基础
  10. IBM Thinkpad的感动,十五岁的生日