HelloWorld!物联网开发

相关的知识准备:

1. 使用的是润和满天星Pegasus智能家居开发套件(Hi3861v100):

主控板+底板+拓展板:d96be6662037ab383e6e308dfbeb47b.jpg


2. 相关的学习资料如下:

海思官方的相关学习资料:
https://developer.hisilicon.com/postDetail?tid=0206112614830760003 直达
Hihope相关资料:(Hihope是润和的海思官方社区,同时拥有自己的官网)http://www.hihope.org/download/download.aspx?mtt=47 直达
润和 HiHope 社区 开源项目集合:
https://gitee.com/hihopeorg 直达
润和满天星系列Pegasus智能家居OpenHarmony开发套件资料汇总:
https://gitee.com/hihope_iot/HiHope_Pegasus_Doc 直达
华清远见Hi3861鸿蒙开发板:
http://wiki.farsightdev.com/index.php?title=%E5%8D%8E%E6%B8%85%E8%BF%9C%E8%A7%81Hi3861%E9%B8%BF%E8%92%99%E5%BC%80%E5%8F%91%E6%9D%BF 直达
HiSpark Pegasus T1 HiSpark Pegasus T1开发板介绍及教程资料【初期的时候需要看这个里面的markdown文档】 https://gitee.com/HiSpark/hi3861_hdu_iot_application/tree/master/doc 直达
【会继续补充】


3. 学习进度:

2023年5月16日:
完成vscode环境搭建和第一个demo案例的下载
调试。点灯成功,如图:

2023年5月17日
确定了主要开发的方式,选用”hi3861_hdu_iot_application-master“作为开发的主要技术参考。并且将具体的下载引入到了个人csdn中的下载。


2023年5月19日
开始具体学习帮助文档中的相关内容:
(成功运行较多的例程,但是发现都是控制led的灯亮,都是控制传感器的程序,在部分架构上使用的函数是有区别的,这说明库函数中提供了很多实现相似功能的函数,还有我在主程序中并没有看到经典的main()函数,【这一定是我这种总是用c语言的菜鸟不明白的😭😮‍💨】为了进一步学习鸿蒙系统的架构和函数的剖析,购买了,已经列为支线学习任务。小编会另外单独开栏目,分享自己在学习harmonyos的过程和感悟哦。
在这里插入图片描述

这里补充:

2023年5月28日:通过学习==OpenHarmony设备开发入门【2022年最新版】==了解Hi3861 的启动流程,为了不让本文章看起来过于的冗长,具体学习请参见:


2023年5月28日
为了快速对协议和各种借口进行入门,先选择参考套件中附送的《Harmonyos IoT设备开发实战》开始学习。

海思Hi3861v芯片简介:

在下面的图中很好的简介了唱用的借口的名称的由来和简单介绍:

缩写名称简介
SRAM待补充待补充
GPIOGeneral Purpose Input/Output,GPIO通用输入/输出
ADCAnalog to DigitalConverter模数转换器
PWMPulse WidthModulation,PWM脉宽调制
UARTUniversal Asynchronous Receiver and Transmitter,UART通用异步收发器
SPISynchronous Peripheral Interface,SPI串行外设接口
I2CThe Inter Integrated Circuit,I2C内部集成电路
SDIOSecure Digital Input/Output,SDIO安全数字输入输出
I2SInter-IC Sound,12S,I2S内部集成电路音频

搭建Harmony环境的需要

  • 硬件:需要套件,pc,一台编译服务器,一个无线路由器,一个可以访问互联网的有线网络
  • 软件:需要Ubuntu(编译服务器系统),vscode,HUAWEI DevEco Device Tool, CH340 USB 转串口芯片驱动软件,PuTTY(支持SSH,Telnet等远程登录协议,同时也支持串口调试)。

【虽然现在只用到vdcode和HUAWEI DevEco Device Tool,CH340就能实现简单的开发环境功能,不知道随着学习会不会用到没有用到的内容】

映射samba服务的共享目录到本地磁盘

如果你的编译服务器Ubuntu20.4系统上已经成功的安装了samba服务,并且配置了共享的目录,那么在同一个网络中的Windows主机就可以将Samba服务的共享目录映射到本地磁盘。在映射到本地磁盘后,就可以使用Windows上的编辑器修改Samba服务中的共享目录中的文件,例如使用Vs code 编辑代码。

具体流程(虽然现在还没有用到)详情见本书P26;

用HarmonyOS控制I/O设备

  1. 从编写HelloWorld
    【这一部分开始做好准备工作】
    在这部分内容中最重要的是学会在哪里构建编译文件,还有要学会在BUILD.gn中构建脚本
  • 首先要学会如何建立的正确的文档的路径:

开发者编写业务时,务必先在./applications/sample/wifi-iot/app 路径下新建一个目录(或
一套目录结构),用于存放业务源码文件。
例如:在 app 下新增业务 my_first_app,其中 hello_world.c 为业务代码,BUILD.gn 为编
译脚本,具体规划目录结构如下:
.└── applications
└── sample
└── wifi-iot
└── app
│── my_first_app
│ │── hello_world.c
│ └── BUILD.gn
└── BUILD.gn

  • 其次编写业务代码:

在 hello_world.c 中新建业务入口函数 HelloWorld,并实现业务逻辑。并在代码最下方,
使用 HarmonyOS 启动恢复模块接口 SYS_RUN()启动业务。(SYS_RUN 定义在 ohos_init.h 文
件中)

#include<stdio.h>
#include<ohos_intit.h"
void hello(void)
{
 printf("hello world!\n");
}
SYS_RUN(hello); //思考为什么在这个最简单的程序,程序运行的时候的调用是怎么开始的?

上述的这个问题需要在《沉浸式剖析OpenHarmonyi源代码》去找到相应的结果

待补充 (上面的黄字说明了一部分情况)

  • 编写用于将业务构建成静态库的 BUILD.gn

如规划目录结构展示,BUILD.gn 文件由三部分内容(目标、源文件、头文件路径)构成,需由
开发者完成填写。以 my_first_app 为例,需要创
建./applications/sample/wifi-iot/app/my_first_app/BUILD.gn,并完如下配置。

static_library("myapp")
 {
sources = [ "hello_world.c"
]
include_dirs = [ "//utils/native/liteos/include"
] 
}

static_library 中指定业务模块的编译结果,为静态库文件 libmyapp.a,开发者根据实际
情况完成填写。
sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//“则表示绝对路径(此
处为代码根路径),若不包含”//"则表示相对路径。
include_dirs 中指定 source 所需要依赖的.h 文件路径

  • 编写模块 BUILD.gn 文件,指定需参与构建的特性模块。

配置./applications/sample/wifi-iot/app/BUILD.gn 文件,在 features 字段中增加索引,使
目标模块参与编译。features 字段指定业务模块的路径和目标,以 my_first_app 举例,features
字段配置如下。
features = [
" my_first_app: myapp",
]

my_first_app 是相对路径,指向./applications/sample/wifi-iot/app/my_first_app/BUILD.gn。
myapp 是目标,指向./applications/sample/wifi-iot/app/my_first_app/BUILD.gn 中的
static_library(“myapp”)。


1.2 HarmonyOS对驱动函数的封装:

OpenHarmony 为轻量系统提供了一套简单的驱动封装接口,函数的定义相关头文件位
于“base\iot_hardware\peripheral\interfaces\kits (英语学习:peripheral【(计算机的)外部设备】 Enumerates【列举了】)

在这里插入图片描述
但是这里只有对头函数的定义,具体想找具体函数的实现在这里找:
在这里插入图片描述
总结:
在这里插入图片描述
在看相关驱动函数的时候如果看不懂@啥意思呢,就看这篇文章:C++ 以及keil qt等常见软件注释 @brief @param @return

更多推荐