官术网_书友最值得收藏!

外設控制篇

第2章 用HarmonyOS控制I/O設備

2.1 從編寫Hello World開始

本節(jié)將會介紹如何使用C語言為開發(fā)板編寫一個Hello World程序,如何將編譯好的二進制文件燒錄到開發(fā)板上,以及如何通過串口查看程序的輸出結果。

2.1.1 編寫Hello World程序源代碼

1.創(chuàng)建名為hello.c的文件

在OpenHarmony源代碼的applications/sample/wifi-iot/app/startup目錄下,創(chuàng)建名為hello.c的文件:

在代碼實例中,ohos_init.h 是 HarmonyOS 特有的頭文件。SYS_RUN 是ohos_init.h中定義的一個宏,它的作用是讓一個函數(shù)在系統(tǒng)啟動時自動執(zhí)行。

2.修改BUILD.gn構建腳本

修改OpenHarmony源代碼的applications/sample/wifi-iot/app/startup目錄下的BUILD.gn文件,將內(nèi)容修改為:

2.1.2 將源代碼編譯成二進制文件

在OpenHarmony源代碼的頂層目錄下,執(zhí)行python build.py wifiiot命令,開始編譯。在編譯完成后,二進制文件將會生成到out/wifiiot子目錄下。

2.1.3 將二進制文件燒錄到開發(fā)板

1.為HUAWEI DevEco Device Tool配置開發(fā)板

在第一次燒錄之前,需要先配置開發(fā)板。配置開發(fā)板的操作步驟如下。

(1)單擊VS Code編輯器底部狀態(tài)欄的“開發(fā)板:None”按鈕,打開開發(fā)選擇下拉菜單,如圖2-1所示(或單擊圖中左側標記1處的“DEVECO TASKS”菜單,再單擊圖中標記2處的“配置”按鈕)。

圖2-1

在彈出的下拉菜單中選擇“Hi3861”選項,進入Hi3861開發(fā)板配置頁面,如圖2-2所示。

(2)在 Hi3861 開發(fā)板配置頁面中,單擊“燒錄”按鈕,進入燒錄配置頁面,如圖2-3所示。

(3)在燒錄配置頁面的“端口號”下拉菜單中,根據(jù)設備管理器中顯示的串口設備號選擇相應的串口。例如,圖2-3中的“COM9”。

(4)把右側的滾動條下拉到“燒錄文件”選區(qū),單擊右側的文件圖標選擇待燒錄文件。在彈出的文件選擇對話框中,選擇此前編譯生成的Hi3861_wifiiot_app_allinone.bin 文件,并在“方式”下拉菜單中選擇“HiBurn”選項,如圖2-4所示。

圖2-2

圖2-3

圖2-4

2.使用HUAWEI DevEco Device Tool燒錄二進制文件到開發(fā)板

使用HUAWEI DevEco Device Tool燒錄二進制文件到開發(fā)板的具體操作步驟如下。

(1)單擊VS Code編輯器底部狀態(tài)欄的“燒錄”按鈕,此按鈕被按下后,終端窗口將會輸出一些提示信息,如圖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 通過“串口”查看程序的運行結果

在燒錄成功后,使用串口調(diào)試工具或HUAWEI DevEco Device Tool集成的串口工具均可以查看程序的運行結果。使用串口助手查看日志的方法見1.7節(jié)。

使用HUAWEI DevEco Device Tool查看串口日志的操作步驟如下。

(1)單擊VS Code編輯器底部狀態(tài)欄的“串口”按鈕,終端窗口會輸出打開串口相關的提問。

(2)在“Pick the one for openning:”提問后,輸入開發(fā)板實際的串口號,例如COM9。

(3)按照實際的串口設備參數(shù)輸入接下來的幾個參數(shù),在“Set endline characters as'\r\n'?”提問后輸入1,如圖2-7所示。

圖2-7

(4)按下開發(fā)板主板上的復位按鍵,讓程序重新開始運行。

此時,會看到終端窗口有日志輸出,如圖2-8所示。

注意:下次燒錄前,需要關閉終端窗口集成的串口工具,否則會因為串口調(diào)試窗口占用串口設備,導致燒錄任務無法成功。

圖2-8

主站蜘蛛池模板: 比如县| 宜州市| 陆丰市| 固安县| 郯城县| 和龙市| 镇远县| 南通市| 兰州市| 正镶白旗| 许昌县| 林州市| 潢川县| 屏南县| 阳谷县| 濮阳市| 丰台区| 泽普县| 宾阳县| 察雅县| 南部县| 合水县| 徐汇区| 莱西市| 淳化县| 阳东县| 莎车县| 旬邑县| 芜湖县| 鹿泉市| 八宿县| 陇川县| 清水县| 阳城县| 清水县| 瓮安县| 卓尼县| 泰兴市| 德化县| 长阳| 保定市|