![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=1738924212-Zpc9HWFMrwSgySH6KJcoTiBtaIR94vLm-0-7c1b4fd7ac087fe86447cb224ef6c466)
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_51_1.jpg?sign=1738924212-gbgeveyn4SgjmU5uDJli5RKWZXBft31t-0-3d0a5e40e8f7508be631d6f9401e3b64)
在代码实例中,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=1738924212-0Y72zT0xvadD8gq30tJHV70PNldrZ0na-0-599454c116a034ec422878843f402629)
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=1738924212-RE8k9AoI8VjH9Enr8c1XAFBcdSWQZuuD-0-d06c1e59fab5e0f8d4671770e5c827f6)
图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=1738924212-MSBTQb0qj3XhkfZQ4oV1KLgr2zlHHrGn-0-b98c75b3a2ad0777fa968cbdb8bdff71)
图2-2
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_53_2.jpg?sign=1738924212-Ly7BQpU39s555qoBgqQXuEWa7Sl57NEP-0-faf3a3333f967b58e3ab3f02c3dd14e0)
图2-3
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_54_1.jpg?sign=1738924212-3TfpkiPUEebd2NEgWvyUvNtyPWbtFbqE-0-bce7e626a4b0401f3cd982abc9d1c43e)
图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=1738924212-htXfcpgAXHQhseGZzt9TibSWS66obCfS-0-cf8e354e54d93007deba8b4eba1f29a1)
图2-5
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_55_2.jpg?sign=1738924212-a8ctq04Iy2Hl4EIj2pLL4UvDLcSYUFpv-0-888faa70188dd3e51179a33b76c6fb47)
图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=1738924212-ssetaF3uEScZaHXfxunI6tJuSIJeNN0x-0-9f405ca8557abeb44db43c2580c48b01)
图2-7
(4)按下开发板主板上的复位按键,让程序重新开始运行。
此时,会看到终端窗口有日志输出,如图2-8所示。
注意:下次烧录前,需要关闭终端窗口集成的串口工具,否则会因为串口调试窗口占用串口设备,导致烧录任务无法成功。
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_57_1.jpg?sign=1738924212-XPbsMOxDxdEjMNdrvoJU83A0HRHJZ4XI-0-3c41c6737eaab4f819e7fe203f952b6b)
图2-8