|
鸿蒙系统开发之实现LED灯闪烁,
修改源码
目录结构 先在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。
本例程:在app下新增业务LED,其中hello_world.c为业务代码,BUILD.gn为编译脚本,具体规划目录结构如下:
. └── applications └── sample └── wifi-iot └── app │── led │ │── led.c │ └── BUILD.gn └── BUILD.gn |
业务代码。 新建./applications/sample/wifi-iot/app/led下的led.c文件,在led.c中新建业务入口函数led,并实现业务逻辑。并在代码最下方,使用HarmonyOS启动恢复模块接口SYS_RUN()启动业务。(SYS_RUN定义在ohos_init.h文件中) 1. BUILD.gn为编译脚本 2. led.c为业务逻辑代码所在文件
led.c
#include <stdio.h> #include <unistd.h> #include “ohos_init.h“ #include “cmsis_os2.h“ #include “wifiiot_gpio.h“ #include “wifiiot_gpio_ex.h“ #define LED_ON_TIME_US 2000000 #define LED_OFF_TIME_US 1000000 static void Led(void) { //GPIO引脚初始化 GpioInit(); //设置管脚功能为GPIO IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9,WIFI_IOT_IO_FUNC_GPIO_9_GPIO); //设置GPIO引脚方向为输出 GpioSetDir(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_DIR_OUT); while (1) { //设置GPIO09输出为低电平 GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0); //打印输出日志 printf(“[DEMO] LED on.\n“); //延时一定时间,即亮灯的持续时间 usleep(LED_ON_TIME_US); //设置GPIO09输出为高电平 GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1); //打印输出日志 printf(“[DEMO] LED off.\n“); //延时一定时间,即灭灯的持续时间 usleep(LED_OFF_TIME_US); } } SYS_RUN(Led); |
BUILD.gn
(app/BUILD.gn)
static_library(“bahuyang“) { sources = [ “led.c“ include_dirs = [ “//utils/native/lite/include“, “//kernel/liteos_m/components/cmsis/2.0“, “//base/iot_hardware/inteRFaces/kits/wifiiot_lite“, }
| 1. “bahuyang”:是生成静态库名称,可随意更改 2. “led.c”:代码文件
BUILD.gn
()
11.png (45.56 KB, 下载次数: 0)
下载附件 保存到相册
15 分钟前 上传 | 1. 将“startup“注释,运行我们自己的文件 2. “led”:工程目录 3. bahuyang:静态库文件
编译烧录
编译
4.png (84.86 KB, 下载次数: 0)
下载附件 保存到相册
28 分钟前 上传
利用HiBurn工具进行烧录,我在以前的文章里,详细讲过。
5.png (115.31 KB, 下载次数: 0)
下载附件 保存到相册
28 分钟前 上传
选定文件后,点击connect,按下开发板复位按钮,进行烧录。
烧录完成后,再次按下复位按键。
观察现象
选择波特率115200,连接相应串口,观看串口调试助手的结果。
6.png (12.06 KB, 下载次数: 0)
下载附件 保存到相册
27 分钟前 上传 LED灯实现闪烁了。
12.png (261.6 KB, 下载次数: 0)
下载附件 保存到相册
16 分钟前 上传
13.png (269.2 KB, 下载次数: 0)
下载附件 保存到相册
15 分钟前 上传 |
|