
外设控制篇
第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的文件:


在代码实例中,ohos_init.h 是 HarmonyOS 特有的头文件。SYS_RUN 是ohos_init.h中定义的一个宏,它的作用是让一个函数在系统启动时自动执行。
2.修改BUILD.gn构建脚本
修改OpenHarmony源代码的applications/sample/wifi-iot/app/startup目录下的BUILD.gn文件,将内容修改为:

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处的“配置”按钮)。

图2-1
在弹出的下拉菜单中选择“Hi3861”选项,进入Hi3861开发板配置页面,如图2-2所示。
(2)在 Hi3861 开发板配置页面中,单击“烧录”按钮,进入烧录配置页面,如图2-3所示。
(3)在烧录配置页面的“端口号”下拉菜单中,根据设备管理器中显示的串口设备号选择相应的串口。例如,图2-3中的“COM9”。
(4)把右侧的滚动条下拉到“烧录文件”选区,单击右侧的文件图标选择待烧录文件。在弹出的文件选择对话框中,选择此前编译生成的Hi3861_wifiiot_app_allinone.bin 文件,并在“方式”下拉菜单中选择“HiBurn”选项,如图2-4所示。

图2-2

图2-3

图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所示。

图2-5

图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所示。

图2-7
(4)按下开发板主板上的复位按键,让程序重新开始运行。
此时,会看到终端窗口有日志输出,如图2-8所示。
注意:下次烧录前,需要关闭终端窗口集成的串口工具,否则会因为串口调试窗口占用串口设备,导致烧录任务无法成功。

图2-8