![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=1738867952-IdXNYlnm2vGEihZUNedvsCFh6AgPYU2N-0-09a4186009386940b069e232433b1ce8)
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_51_1.jpg?sign=1738867952-zBkwcgO4i3ijH8zvxagBHUAIdcfZMvv8-0-0a6c1ea036563feb4afad402f30c61a3)
在代码实例中,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=1738867952-vwWcbu0wK0SA3Dd3okIsWJS40vtcEyNj-0-fdabf5c1655c8b72a125cb696613b223)
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=1738867952-zfwbLIs1xbpUlNdwxtMWLu71B7DNW1T3-0-c528fb51fbd27b7291f5fdae66f73ab6)
图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=1738867952-xEwTA7NqIUaJmF7n3Zha8mCAZ0rVYA4I-0-8550f4fa14ed94c6e585489466126f0a)
图2-2
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_53_2.jpg?sign=1738867952-9bg9vuzSon9BPOvcA7FQ8bTGwYYrnt6G-0-41e8c238bb00335071a226186bcd277d)
图2-3
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_54_1.jpg?sign=1738867952-566Uc3SUuTKKV91Cpje4U8UTrT16WanR-0-a058ff79b0dea88af680d8d981805309)
图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=1738867952-nLTAKWqIn62pKzeuQc1vf0MCOvc3EE2T-0-41c6441788b0179e410af5b364483b9f)
图2-5
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_55_2.jpg?sign=1738867952-xWbtkfE3LPtYm6dWfzijGGSRHaoxtK1v-0-1199ef46c26fc7ed32a0712039cd26da)
图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=1738867952-zOhFDLj4Cjp3wNbMl1cjF7vYyMWBkIuo-0-32fb1727358bf16c4e9b5d61b0908aae)
图2-7
(4)按下开发板主板上的复位按键,让程序重新开始运行。
此时,会看到终端窗口有日志输出,如图2-8所示。
注意:下次烧录前,需要关闭终端窗口集成的串口工具,否则会因为串口调试窗口占用串口设备,导致烧录任务无法成功。
![](https://epubservercos.yuewen.com/E6CF3C/21190706008522906/epubprivate/OEBPS/Images/41175_57_1.jpg?sign=1738867952-tazShJfBw4RGsYXwYaN15ljS5TvMzu0W-0-8b66b6928c6ae09ab7221973c117b73d)
图2-8