第 3 章 C语言鸿蒙OS设备程序 开发方法和步骤 【本章学习目标】 (1)学会C语言鸿蒙OS 设备开发编译环境的使用。 (2)熟练掌握C语言鸿蒙OS 设备开发方法和开发步骤。 (3)掌握C语言鸿蒙OS 设备开发程序项目的结构和组成内容。 本章以点亮一只LED 灯的C语言设备开发程序案例,详细讲述利用本书第2 章已经搭建好的C语言鸿蒙OS 设备开发环境,开发设计C语言设备程序的方法 和步骤。 ..3.1 C 语言鸿蒙OS 设备程序开发方法 1 3. Linu 如图3-1所示,C语言鸿蒙OS 设备开发必须同时使用Windows开发环境与 x编译环境,程序开发实验基于Hi3861 芯片的开发板,大致开发过程分为几 个步骤:代码编写,代码编译,镜像烧录,串口调试。程序员在Windows开发环境 完成C语言程序源代码的编辑和修改,在Linux编译环境中将编辑好的C语言程 序源代码编译成二进制的C语言程序可执行代码,然后再利用Windows开发环 境中的烧录软件Hiburn,将Linux编译环境中编译好的C语言程序可执行代 码,烧录到Hi3861 开发板中,最后在Hi3861 开发板中运行C语言程序可执行 代码。 图3- 1 C 语言鸿蒙OS 设备程序开发环境 第3章C语言鸿蒙OS设备程序开发方法和步骤97 其中,Linux编译环境通过在Windows上搭建Ubuntu虚拟机的方式来实现。通过 samba工具构建Linux本地虚拟机与Windows之间的共享文件夹,实现Windows环境与 Ubuntu环境的资源共享。获取鸿蒙OS 源码和支持开发板的源代码之后,将全部源码解压 存放在共享文件夹share下(本书设定的共享文件夹是share) 。 开发方法:首先在共享文件夹下完成C语言程序源代码编辑;然后在Ubuntu虚拟机 中完成C语言程序代码编译,编译生成的二进制可执行代码文件存放在源码目录下的out 文件夹内,因为源码存放在共享文件夹下,所以编译生成的二进制可执行代码文件也存放在 共享文件夹下;最后在Windows环境中获取编译生成的二进制可执行代码文件,进行镜像 烧录与运行调试。 从图3-1可以看出,在程序的设备实验开发过程当中,软件的编译与执行不在同一设备 上进行,编译在电脑端执行,编译产物在开发板上执行,这一过程称为交叉编译。在硬件设 备的嵌入式开发当中,使用交叉编译的开发方式是极其必要的,这主要是因为嵌入式操作系 统的硬件资源过少,无法完成源代码的编译工作,这就需要将编译的工作交由资源更多的设 备进行,硬件设备只进行编译产物的执行工作。 3.2 ..3.2C语言鸿蒙OS设备程序项目结构和内容 通常情况下C语言程序不是由一个文件组成的,而是由一些与该程序密切相关的源程 序代码文件,图形、图像、图标等资源文件,数据文件,配置文件,操作说明书等多个文件共同 组成。所以准确地说,一个C语言程序通常被称为一个C语言程序项目或者C语言程序工 程。当然,构成C语言程序项目的文件可视必要与否进行取舍。 本节以点亮一个Hi3861 开发板上的LED 灯的C语言程序项目为例,简要介绍一个C 语言鸿蒙OS 程序项目的结构和内容。 图3-2形象地展示了一个C语言鸿蒙OS 程序项目的结构和内容,图中外带方框的 LED 和SOURCE_LED 是文件夹,而且SOURCE_LED 文件夹是LED 文件夹下面的子文 件夹。 图3- 2 点亮LED 灯的C语言鸿蒙OS 程序项目结构和内容示意图 图3-2表示将点亮一个Hi3861 开发板上的LED 灯的C语言程序项目放在LED 主文 件夹里面进行管理,在LED 主文件夹里面存放了BUILD.n、config.son两个文件和一个 子文件夹SOURCE_LED,在子文件夹SOURCE_ gjgn和LED. LED 里面存放了BUILD.c两 个文件。其中:LED 主文件夹里面的BUILD.n和SOURCE_LED 子文件夹里面的 gBUILD.n是两个与编译环境配置有关的文件,它们虽然名字相同,但是内容和作用却是不 g 同的;LED 主文件夹里面的config.son也是一个编译环境配置文件;SOURCE_LED 子文 件夹里面的LED. j 它由实现程序功能所必需的 c是程序员编写的C语言程序源代码文件, 98 鸿蒙OS智能设备开发基础(微课版) C语言程序代码组成,这个文件的扩展名必须是.c(小写的c)。 为便于组织和管理C语言鸿蒙OS程序项目,一般将C语言鸿蒙OS程序项目存放在 特定的文件夹下,而且不同厂商的程序项目要存放在自己特定的文件夹下,这是因为一个C 语言鸿蒙OS程序项目,既有程序员自己编写的C语言程序源代码文件LED.c,也有程序员 自己编写的项目配置文件config.json和BUILD.gn,还有构成程序项目必不可少的鸿蒙OS 操作系统文件和支持C语言鸿蒙OS开发的设备厂商提供的项目支撑文件。所有这些文件 相互依赖,相互协作,共同构成C语言鸿蒙OS程序项目,因此放在特定的文件夹下,便于这 种依赖关系的实施。 要想使用C语言编程来点亮一个Hi3861开发板上的LED灯,必须调用一些驱动开发 板工作的API(ApplicationProgrammingInterface)函数,本例中用到的API函数如表3-1 所示。 表3-1 点亮一只LED 灯项目用到的API函数一览表 API函数功能描述 unsignedintIoTGpioInit(OUT_GPIO7) 初始化GPIO 端口 IoTGpioSetDir(WifiIotGpioIdxid,WifiIotGpioDirdir); 设置GPIO 引脚方向,id参数用于指定 引脚,dir参数用于指定输入或输出 IoTGpioSetOutputVal(WifiIotGpioIdx id, WifiIotGpioValue val); 设置GPIO 引脚的输出状态,id参数用 于指定引脚,val参数用于指定高电平或 低电平 IoTGpioSetFunc(WifiIotNameid,unsignedcharval); 设置GPIO 引脚的功能,id参数用于指 定引脚,val参数用于指定引脚功能 APP_FEATURE_INIT(LED); 用于开发板引导启动程序模块 点亮一个Hi3861开发板上的LED灯项目的各个文件的内容和作用分别介绍如下。 1.LED 主文件夹里面的BUILD.gn文件内容及作用 group("LED") { deps = ["SOURCE_LED:LED", "//device/bossay/hi3861_l0/sdk_liteos:wifiiot_sdk", "../common/iot_wifi:iot_wifi", ] } (1)C 语言鸿蒙OS 设备程序的编译结果可以是静态库(static_library)、动态库 (dynamic_library)、可执行文件或者group(组件),组件是鸿蒙OS系统最小的可复用、可配 置、可裁剪的功能单元。组件具备目录独立、可并行开发、可独立编译、可独立测试的特征。 (2)LED主文件夹里面的BUILD.gn文件是一个组件编译脚本文件,该文件的作用就 是设置组件编译的配置,也就是在编译C语言鸿蒙OS设备程序时,要根据这个文件的内容 来编译和生成编译目标结果。该文件中的group("LED")用以设置编译组件的目标名称 “LED”,就是组件的名称为“LED”,它和C语言程序的项目名称LED 保持了一致,遵循了 第3章 C语言鸿蒙OS设备程序开发方法和步骤 99 编译目标名称和组件一致的原则。deps=["SOURCE_LED:LED","//device/bossay/ hi3861_l0/sdk_liteos:wifiiot_sdk","../common/iot_wifi:iot_wifi"]语句中:deps是英文单 词depends的缩写,汉语的意思是“依赖”,因此该句的含义为,编译构建LED 组件,需要依 靠LED文件夹下面SOURCE_LED 文件夹下的内容,以及保存在/device/bossay/hi3861_ l0/sdk_liteos:wifiiot_sdk和../common/iot_wifi:iot_wifi中的鸿蒙OS操作系统中有关无 线网络的开发包中的内容。 2.SOURCE_LED 文件夹里面的BUILD.gn文件内容及作用 static_library("LED") { sources = ["LED.c", ] include_dirs = [ "//utils/native/lite/include", "//base/iot_hardware/peripheral/interfaces/kits", "//device/bossay/hi3861_l0/iot_hardware_hals/include", "//device/bossay/hi3861_l0/sdk_liteos/include" ] } (1)SOURCE_LED主文件夹里面的BUILD.gn文件也是一个组件编译脚本文件,该 文件的作用是设置程序LED.c编译的配置,也就是在编译C语言程序LED.c时,要根据这 个文件的内容来编译和生成目标结果。static_library("LED")表明是要将LED.c编译成 静态库。 (2)sources= ["LED.c",]表明编译生成静态库的源代码文件来源于LED.c。 (3)include_dirs= [**** ]用于设置LED.c中#include包含语句的头文件的存储 路径。 3.SOURCE_LED 主文件夹里面的LED.c文件内容及作用 #include <stdio.h> #include "ohos_init.h" #include "iot_gpio_ex.h" #include "iot_gpio.h" #define OUT_GPIO13 13 static void LED(void) //定义静态函数LED { IoTGpioInit(OUT_GPIO13); //初始化Hi3861 芯片GPIO13 个引脚(GPIO 端口) //设置Hi3861 芯片GPIO13 引脚的功能 IoTGpioSetFunc(OUT_GPIO13,IOT_GPIO_FUNC_GPIO_13_GPIO); IoTGpioSetDir(OUT_GPIO13,IOT_GPIO_DIR_OUT); //设置写Hi3861 芯片GPIO13 引脚 IoTGpioSetOutputVal(OUT_GPIO13, 1); //设置写高电平到Hi3861 芯片GPIO13 引脚 }A PP_FEATURE_INIT(LED); //初始化且调用执行LED 组件程序 Hi3861芯片的GPIO13引脚连接着实验板上的一个LED灯(发光二极管),实际上实 验板上有排列成五角形的5个LED 灯,分别对应连接Hi3861芯片的GPIO9、GPIO10、 GPIO11、GPIO12、GPIO13引脚。将上述代码中的13分别全部改成9、10、11、12,然后编译 生成可执行代码,写入实验板看看都有哪个灯被点亮。 1 00 鸿蒙OS智能设备开发基础(微课版) 4.LED 主文件夹里面的config.json文件内容及作用 { "product_name": "LED", "ohos_version": "鸿蒙OS 3.0", "device_company": "bossay", "board": "hi3861_l0", "kernel_type": "liteos_m", "kernel_version": "", "subsystems": [ { "subsystem": "iot_hardware", "components": [ { "component": "iot_controller", "features":[]} ] }, { "subsystem": "distributed_schedule", "components": [ { "component": "samgr_lite", "features":[]} ] }, { "subsystem": "security", "components": [ { "component": "hichainsdk", "features":[]}, { "component": "deviceauth_lite", "features":[]}, { "component": "huks", "features": [ "huks_config_file = \"hks_config_lite.h\"", "huks_mbedtls_path = \"//device/bossay/hi3861_l0/sdk_liteos/third_ party/mbedtls/include/\"" ] } ] }, { "subsystem": "startup", "components": [ { "component": "bootstrap_lite", "features":[]}, { "component": "syspara_lite", "features": [ "enable_ohos_startup_syspara_lite_use_thirdparty_mbedtls = false" ] } 第3章 C语言鸿蒙OS设备程序开发方法和步骤1 01 ] }, { "subsystem": "utils", "components": [ { "component": "file", "features":[]}, { "component": "kv_store", "features":[]}, { "component": "os_dump", "features":[]} ] } ], "third_party_dir": "//device/bossay/hi3861_l0/sdk_liteos/third_party", "product_adapter_dir": "//vendor/bossay/hi3861_l0/hals" } LED主文件夹下的config.json文件是一个组件编译配置文件,该文件的作用是设置在 编译生成LED产品组件时,需要用到的鸿蒙OS操作系统源码和鸿蒙智联创新开发板的支 持源码。因为鸿蒙OS操作系统是可裁剪的,在编译生成LED产品组件时,通过config文 件配置那些必要的鸿蒙OS组件即可,例如,在该config.json中就配置了必须的鸿蒙OS的 硬件子系统的"iot_controller"组件、分布式数据管理子系统的"samgr_lite组件、安全子系 统的部分组件和启动子系统的部分组件,以及鸿蒙智联创新开发板的部分支持代码。 3.3 .. 3.3 点亮一只LED 灯的C语言设备程序开发步骤 本节以点亮一只LED灯的C语言鸿蒙OS设备程序开发为例,详细讲述C语言鸿蒙 OS设备程序开发的步骤。 1.准备好C语言鸿蒙OS设备程序编译环境 .................................................................................... 说明:在开发C语言鸿蒙OS程序之前,要先准备好C语言鸿蒙OS程序编译环 境,也就是要先在Windows工作台上运行虚拟机管理程序VMwareWorkstationPro,然后 再在虚拟机管理程序中启动Ubuntu版Linux虚拟机BossayUbuntu。 .................................................................................... 如果虚拟机管理程序VMwareWorkstationPro和Linux虚拟机BossayUbuntu已经 运行,则省略此步。否则如图3-3所示,要运行虚拟机管理程序VMwareWorkstationPro 并启动运行Linux虚拟机BossayUbuntu,为C语言鸿蒙OS设备开发准备好编译环境。 2.打开并运行VSCode,通过SSH 建立与虚拟机的连接 .................................................................................... 说明:VSCode程序是C语言鸿蒙OS程序的编辑软件,C语言鸿蒙OS程序项目 的所有文件都是使用VSCode程序来编辑的。 .................................................................................... 如果VSCode程序已运行,则略过此步。否则在Windows工作台操作系统的桌面上 102鸿蒙OS智能设备开发基础(微课版) 图3-3C语言鸿蒙OS设备开发虚拟机 找到如图3-4所示VSCode程序的快捷图标,双击它运行该程序,如果一切正常会出现VS 图3-4VSCode程序 的快捷图标 Code程序运行主窗口如图3-5所示。如果在启动VSCode程序的过 程中出现如图3-6所示的“SSH 连接异常”窗口,意味着SSH 没有建 立与IP 地址为192.128 的虚拟机的连接,这有可能是由于虚 168. 249. 拟机刚启动、其SSH 服务还没有启动的情况下出现的问题,这时单击 图3-6所示的窗口中的Retry按钮,尝试再次进行SSH 连接,如果连 接成功,则出现如图3-5所示的窗口,VSCode程序完成正常启动。 如果尝试Retry几次问题还得不到解决,极有可能是由于SSH 连接 设置存在问题,需要重新检查并解决SSH 连接设置存在的问题。 图3- 5 建立了SSH 连接的VSCode程序的主窗口 第3章C语言鸿蒙OS设备程序开发方法和步骤103 图3- 6 SSH 连接异常 3.在VSCde程序中打开资源管理工具,使用DevEco添加新产品 在如图3-7所(o) 示的窗口中,单击窗口左侧列表中最上方的资源管理器图标 打开资源 管理器工具,然后单击资源管理器下方的CODE3项目,找到并且单击打开vendor,然后右 击vendor下面的bosay,这时会在右侧弹出菜单,接着单击弹出菜单最下方的“[DevEco] 开源鸿蒙”,在其右侧会弹出子菜单“添加新产品”,单击“添加新产品”,弹出“产品创建向 导”如图3-8所示。 4.使用DEo产品创建向导,设定产品基础信息 在如图3-8(e) 所(v) 示(c) 的窗口中,用键盘输入的方式在“供应商名称”下方的文本输入框中输 入“bosay”,在“产品名称”下方的文本输入框中输入点亮一只LED灯的项目名称“LED”, 单击“开发板名称”下方列表框,在弹出的列表中选择“hi3861_IO”,产品名称保持“无”,设定 好的新产品的基础信息如图3-9所示,设定好产品基础信息后,单击窗口下方的“确定”键, 回到如图3-10所示的窗口。要注意,刚回到该窗口时如果看不到新建的“LED”新产品项 目,这时必须单击“刷新资源管理器”图标后才能在vendor下面的bosay中见到新建的产 品项目“LED”。注意以后每次新建项目、文件夹、文件后,如果在bosay文件夹下看不到它 们都需要单击一下刷新图标,才能在列表中看到它。 5.检查一下新创建的LED 项目的基础内容 在如图3-10所示的窗口中,单击“LED”项目,在其下方列出新建“LED”项目的两个文 gjg 件BUILD.n和config.son如图3-11所示。单击BUILD.n文件,可以在右侧文本编辑器 gg. 中编辑BUILD.n文件内容,如图3-12所示;单击confijson文件,就可以在右侧文本编辑 104鸿蒙OS智能设备开发基础(微课版) 图3- 7 VSCode程序运行的主窗口 图3- 8 产品创建向导 第3章C语言鸿蒙OS设备程序开发方法和步骤105 图3-9产品基础信息 图3-10 新建LED 项目 106鸿蒙OS智能设备开发基础(微课版) 图3-11 新建LED 项目的基础内容 图3-12 编辑器中编辑文件BUILD.n g 第3章C语言鸿蒙OS设备程序开发方法和步骤107 器中编辑config.json文件内容,如图3-13 所示。如此操作,想编辑任何一个文件,只要单击 文件名,该文件就会显示在编辑器中任由编辑了。 图3-13 编辑器中编辑文件confi.son gj 6. 编辑保存LED 项目根目录下的BUILD.n文件 g .................................................................................... 说明:这一步是程序员编辑LED 项目根目录下的BUILD.gn文件,用键盘输入文 件的内容,然后保存该文件。 .................................................................................... 本步操作由以下3步完成。 1)在文本编辑器中打开LED 文件夹下的BUILD.n文件 g 在如图3-11 所示的窗口中,单击打开窗口左侧列表中文件夹LED,然后单击LED 文件 夹下面的文件BUILD.n,将其在编辑器中打开如图312 所示。 g2)使用文本编辑器编辑LED 文件夹下的BUILD.n文 件 g 如图3-14 所示,在确保内容、格式严格符合C语言程序规范的前提下,采用键盘输入的 方式,将本书3.gn代码输入, gn文件内容的 2节LED 主文件夹下的BUILD.完成BUILD. 编辑 3 。 )保存LED 文件夹下的BUILD.n文件 g - g 如图315 所示,编辑完文件BUILD.n的内容后,单击“文件”菜单,然后在弹出的子菜 单中单击“保存”,将BUILD.n的内容保存到磁盘上。凡是输入和修改后的文件内容,都需 要照此方法进行及时的保存 g 。 108鸿蒙OS智能设备开发基础(微课版) 图3-14编辑器中编辑LED文件夹的BUILD.gn 图3保存文件BUILD.n的内容 -15 g 7. 编辑保存LED 项目根目录下的confi.son文件 gj 本步操作由以下3步完成。 fg.1)在文本编辑器中打开LED 文件夹下的conijson文件 在如图3-11 所示的窗口中,单击打开窗口左侧列表中文件夹LED,然后单击LED 文件 夹下面的文件conijson,将其在编辑器中打开,如图313 所示。 fg. 2)使用文本编辑器编辑LED 文件夹下的conijson文 件 编辑config.son文件内容有以下两种方法。 fg. j (1)使用键盘输入的方式编辑config.son文件。 如图3-13 所示,在确保内容、格式严格符合C语言程序规范的前提下,采用键盘输入的 configj.son文件内容的编辑 onijon文件, 。 2节 jLED 主文件夹下的cnijo 方式,修改cfg.s将本书3.ofg.sn代码输入,完成 第3章C语言鸿蒙OS 设备程序开发方法和步骤109 (2)使用复制和粘贴的方式编辑cnijo fg. ofg.sn文件。 因为conijson文件的内容不但有点多,而且文件内容对于初学C语言的人来说也难 以读懂。用键盘输入编辑修改整个文件的内容,对于初学者来说有点困难,有时候还难免出 现错误,所以,初学者可以用复制粘贴的方式来输入config.son文件的内容。与本书配套 j 的网站提供了本书中所有的程序项目内容,每一个案例程序的文件都可以从网上下载,每个 案例项目中都有一个cofg.sn文件。初学者可以采用复制粘贴的方式来输入编辑 config.son文件的内容。 nijo 3)保存LED 文件夹下的conijson文件 编辑完文件 jconfigj.son的内容后 fg. ,单击VSCode的“文件”菜单,然后在弹出的子菜单 中单击“保存”,将conijson的内容保存到磁盘上。 fg. 8. 在LED 项目的文件夹LED 下新建子文件夹SOURCE_LED .................................................................................... 说明:这一步是程序员在LED 文件夹下创建一个子文件夹SOURCE_LED,在子 文件夹SOURCE_LED 下存放程序项目的源代码文件和编译配置文件,文件夹的名字由程 序员自己决定,但这个文件夹要创建在项目文件夹LED 下。 .................................................................................... 在LED 文件夹下新建SOURCE_LED 文件夹有以下2种方法。 (1)在如图3-16 窗口中,右击LED 文件夹弹出菜单,然后单击菜单中的“新建文件夹”, 在弹出的文本输入框中输入“SOURCE_LED”,输入完成后按回车键就在LED 文件夹下建 立了SOURCE_LED 文件夹,如图3-18 所示。 图3-16 使用菜单在文件夹LED 下创建子文件夹 (2)如图3-17 所示,首先单击打开LED 文件夹,然后单击“新建文件夹”按钮,接着在弹 出的文件夹名称输入框中输入“SOURCE_LED”,输入完成后按回车键就在LED 文件夹下 建立了SOURCE_LED 子文件夹,如图3-18 所示。 110鸿蒙OS智能设备开发基础(微课版) 图3-17使用图标按钮在LED文件夹下新建文件夹 图3-18 在LED 文件夹下创建SOURCE_LED 文件夹 第3章C语言鸿蒙OS 设备程序开发方法和步骤111 9. 在LED 项目的子文件夹SOURCE_LED 下,新建编译配置文件BUILD. gn .................................................................................... 说明:这一步是程序员在LED 文件夹下边的子文件夹SOURCE_LED 中,创建程 序项目的编译配置文件BUILD.n,包括:创建这个文件的文件名、利用键盘输入文件的内 g 容以及文件内容输入完成后保存这个文件。要注意的是,这个文件和前面第6步编辑的文 件虽然名称相同,但是它们的内容不相同,作用也不一样,而且存放在不同的文件夹下。 .................................................................................... 本步操作由以下3步完成。 1)在SOURCE_LED 文件夹下新建BUILD.n文件 在SOURCE_LED 文件夹下新建BUILD.ng 文件有以下2种方法。 g (1)在如图3-19 所示的窗口中,右击SOURCE_LED 文件夹会弹出菜单,然后单击弹 出菜单中的“新建文件”,在弹出的文件名称输入框中输入“BUILD.n”,输入完成后按回车 键就在SOURCE_LED 文件夹下建立了文件BUILD.如图319 g 所示。 gn, 图3-19 使用菜单在文件夹SOURCE_LED 下新建文件 (2)如图3-20 所示,首先单击打开SOURCE_LED 文件夹,然后单击“新建文件”按钮, 接着在弹出的文件名称输入框中输入“BUILD.n输入完成后按回车键就在SOURCE_,(”) gLED 文件夹下建立了BUILD.n文件,如图321 所示。 g2)编辑SOURCE_LED 文件夹下新建的BUILD.n文件 在如图321 所示的窗口中,保持文件BUILD.ng 处于打开编辑状态,然后用键盘在窗 -g 口右侧文本编辑器中输入本书3.2节中SOURCE_LED 文件夹下的文件BUILD.n的内 g 容,如图3-22 所示。需要说明的是,该文件内容的编辑,也可以用复制粘贴方式去完成。 112鸿蒙OS智能设备开发基础(微课版) 图3-20 使用图标按钮在SOURCE_LED 文件夹新建文件 图3-21 在SOURCE_LED 文件夹新建文件BUILD.n g 第3章C语言鸿蒙OS设备程序开发方法和步骤113 图3-22编辑文件BUILD.gn文件 3)保存SOURCE_LED 文件夹下编辑好的BUILD.n文 件 -ggod 如图323 所示,编辑好文件BUILD.n的内容后,要及时单击VSCe程序的“文件” 菜单,然后在弹出的子菜单中单击“保存”,及时将BUILD.n的内容保存到磁盘上。 g 图3-23 保存SOURCE_LED 文件夹下的BUILD.n文件 g 114 鸿蒙OS 智能设备开发基础(微课版) 10. 在LED 项目的子文件夹SOURCE_LED 下新建C语言程序源代码文件LED. c .................................................................................... 说明:这一步是在LED 文件夹下边的子文件夹SOURCE_LED 里面,创建程序项 目的C语言程序代码文件LED.c,包括:创建这个文件的文件名、利用键盘输入文件的内容 以及文件内容编辑输入完成后保存这个文件。需要说明的是,这个文件是由程序员根据程 序的功能要求,自己设计编写的C语言程序文件。 .................................................................................... 本步操作由以下3步完成。 1)在SOURCE_LED 文件夹下新建LED. c文 件 在SOURCE_LED 文件夹下新建LED. c文件有以下2种方法。 (1)在如图3-24 所示的窗口中,右击SOURCE_LED 文件夹弹出菜单,然后单击“新建 文件”, LED.” 在弹出的文件名称输入框中输入文件名称“c,输入完成后按回车键就在 SOURCE_LED 文件夹下新建了LED.c文件,如图3-26 所示。 图3-24 使用菜单在文件夹SOURCE_LED 下新建文件 (2)如图3-25 所示,首先单击打开SOURCE_LED 文件夹,然后单击“新建文件”按钮, 接着在弹出的文件名称输入框中输入“LED.输入完成后按回车键就在SOURCE_LED ,(”) c 文件夹下建立了LED.c文件,如图3-26 所示。 一定要注意文件名的扩展名是小写的字符“c”。 c文件2)编辑LED. 保持文件LED.然后用键盘在窗口右 在如图3-26 所示的窗口中,c处于打开编辑状态, 第3章C语言鸿蒙OS设备程序开发方法和步骤115 图3-25 使用图标按钮在SOURCE_LED 文件夹新建文件 图3在SOURCE_LED 文件夹新建文件LED. -26 c