![HarmonyOS IoT设备开发实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/36/40795036/b_40795036.jpg)
外设控制篇
第2章 用HarmonyOS控制I/O设备
2.1 从编写Hello World开始
本节将会介绍如何使用C语言为开发板编写一个Hello World程序,如何将编译好的二进制文件烧录到开发板上,以及如何通过串口查看程序的输出结果。
2.1.1 编写Hello World程序源代码
1.创建名为hello.c的文件
在OpenHarmony源代码的applications/sample/wifi-iot/app/startup目录下,创建名为hello.c的文件:
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_50_1.jpg?sign=1739518673-sxo2g6zD40dzp8DCJnSCRerHKLaFaXJl-0-5ba1fd25ea3526281227f13271354700)
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_51_1.jpg?sign=1739518673-wvc9XN3YRhTWsj6SejKXnesSIcJwOOLu-0-fc76d555331bb92b9c94b669fe9bcf8c)
在代码实例中,ohos_init.h 是 HarmonyOS 特有的头文件。SYS_RUN 是ohos_init.h中定义的一个宏,它的作用是让一个函数在系统启动时自动执行。
2.修改BUILD.gn构建脚本
修改OpenHarmony源代码的applications/sample/wifi-iot/app/startup目录下的BUILD.gn文件,将内容修改为:
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_51_2.jpg?sign=1739518673-MmitG00jBXnIuGt1wCrea3YG6QryC2ce-0-321a8d19d3e70f5bcc6814eebc41fef5)
2.1.2 将源代码编译成二进制文件
在OpenHarmony源代码的顶层目录下,执行python build.py wifiiot命令,开始编译。在编译完成后,二进制文件将会生成到out/wifiiot子目录下。
2.1.3 将二进制文件烧录到开发板
1.为HUAWEI DevEco Device Tool配置开发板
在第一次烧录之前,需要先配置开发板。配置开发板的操作步骤如下。
(1)单击VS Code编辑器底部状态栏的“开发板:None”按钮,打开开发选择下拉菜单,如图2-1所示(或单击图中左侧标记1处的“DEVECO TASKS”菜单,再单击图中标记2处的“配置”按钮)。
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_52_1.jpg?sign=1739518673-GYyjhv4LmxU6wNggg2b8JFxz6kIqRfsY-0-20c3ee850deb062d866b09e6a7d18dd1)
图2-1
在弹出的下拉菜单中选择“Hi3861”选项,进入Hi3861开发板配置页面,如图2-2所示。
(2)在 Hi3861 开发板配置页面中,单击“烧录”按钮,进入烧录配置页面,如图2-3所示。
(3)在烧录配置页面的“端口号”下拉菜单中,根据设备管理器中显示的串口设备号选择相应的串口。例如,图2-3中的“COM9”。
(4)把右侧的滚动条下拉到“烧录文件”选区,单击右侧的文件图标选择待烧录文件。在弹出的文件选择对话框中,选择此前编译生成的Hi3861_wifiiot_app_allinone.bin 文件,并在“方式”下拉菜单中选择“HiBurn”选项,如图2-4所示。
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_53_1.jpg?sign=1739518673-57pLOCVdJPI5rtbx8VKOSvLjSfkBc7RO-0-931030027d8d52426e1f80f5043af82d)
图2-2
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_53_2.jpg?sign=1739518673-iB9jFFHhbkxlqtkon9tir4uSrb7ZDKyP-0-d95724e8e0875f2409bc40030041840d)
图2-3
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_54_1.jpg?sign=1739518673-fyBa9zaR97BEwwW1EVIwK12SHx3yJZpz-0-36b52b3cd0265853b5fdcf1c54f4f787)
图2-4
2.使用HUAWEI DevEco Device Tool烧录二进制文件到开发板
使用HUAWEI DevEco Device Tool烧录二进制文件到开发板的具体操作步骤如下。
(1)单击VS Code编辑器底部状态栏的“烧录”按钮,此按钮被按下后,终端窗口将会输出一些提示信息,如图2-5所示。
(2)在终端窗口输出“Please tap the Reset-Key to reset the board”后,按下核心板的复位按钮,终端窗口将会有烧录进度和过程日志输出。
(3)一段时间后,若终端窗口输出“Succeed to load and write image”,则表示烧录成功,如图2-6所示。
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_55_1.jpg?sign=1739518673-0vqcvHAfkpxDvYMbESIhoEMNMqlZigo9-0-788f133b6c9d90ad7ae2aa6d7b8503fa)
图2-5
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_55_2.jpg?sign=1739518673-iUka1ldflXNfeFQdiNNrmbadg7Xw9t7P-0-ab3d8082fde013075e47104127156565)
图2-6
2.1.4 通过“串口”查看程序的运行结果
在烧录成功后,使用串口调试工具或HUAWEI DevEco Device Tool集成的串口工具均可以查看程序的运行结果。使用串口助手查看日志的方法见1.7节。
使用HUAWEI DevEco Device Tool查看串口日志的操作步骤如下。
(1)单击VS Code编辑器底部状态栏的“串口”按钮,终端窗口会输出打开串口相关的提问。
(2)在“Pick the one for openning:”提问后,输入开发板实际的串口号,例如COM9。
(3)按照实际的串口设备参数输入接下来的几个参数,在“Set endline characters as'\r\n'?”提问后输入1,如图2-7所示。
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_56_1.jpg?sign=1739518673-CPQhPBFLKXcRG1DWw9ftTdVKoaFI7RqA-0-d61eb54b1600728cf8a499ae77bd657d)
图2-7
(4)按下开发板主板上的复位按键,让程序重新开始运行。
此时,会看到终端窗口有日志输出,如图2-8所示。
注意:下次烧录前,需要关闭终端窗口集成的串口工具,否则会因为串口调试窗口占用串口设备,导致烧录任务无法成功。
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_57_1.jpg?sign=1739518673-5eRYSRRU0e3o3POCf2rKfc7XCHtxHtPO-0-88a9402b716d0fb28920ac6bf4554fff)
图2-8