第一篇 外设学习之点亮LED灯
第一篇 外设学习之点亮LED灯
前言
这是鸿蒙IOT设备开发的第一节,点亮LED灯,非常简单,可以作为入门。本系列文章使用的均为小熊派社区提供的开发板。写文章的目的主要是记录一下学习过程。源码和参考文件均来自于小熊派开源项目。
一、硬件电路
硬件电路很简单,就是用一个GPIO与LED灯的一个引脚连接,另一个引脚接地。因此只要让GPIO输出高电平即可以使灯点亮。
二、代码
1.led.c文件
#include "ohos_init.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"
// 延时函数需要用到的头文件
#include "unistd.h"
//创建led_example函数
void led_example(void)
{
// 初始化GPIO
GpioInit();
// 设置IO管脚复用功能--参数:引脚号,引脚功能
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2,WIFI_IOT_IO_FUNC_GPIO_2_GPIO);
// 设置GPIO方向为输出:引脚号,引脚方向
GpioSetDir(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_GPIO_DIR_OUT);
// 循环点亮10次led灯
for (int i = 0; i < 10; i++)
{
//设置引脚输出高低电平:引脚号,电平值(高电平点亮)
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2, 1);
//延时10的6次方微秒,也就是1秒
usleep(1000000);
//低电平熄灭
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2,0);
// 延时1秒
usleep(1000000);
}
// 循环闪烁后再点亮LED灯
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2,1);
}
// 应用层功能初始化时调用led_example
APP_FEATURE_INIT(led_example);
2.BUILD.gn
这是新建的项目文件夹下的构建文件,每次新建一个项目都需要新建一个BUILD.gn文件。static_library后面就是静态库名,sources是需要编译的源代码文件,include_dirs是源代码包含的头文件的文件夹路径
static_library("my_led") {
sources=[
"led_example.c"
]
include_dirs=[
"//utils/native/lite/include",
"//base/iot_hardware/interfaces/kits/wifiiot_lite"
]
}
还有一个是模块的BUILD.gn文件,在applications\BearPi\BearPi-HM_Nano\sample目录下。在features 中加入你要编译的项目。项目名:静态库名
import("//build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
"my_led:my_led"
]
}
总结
编写好后就可以编译烧录了。感谢小熊派提供的开发板和开源代码及参考文件。当然,代码很简单是因为调用的是别人封装好了的函数,想要深入学习就需要追根溯源去学习别人的源码,搞清楚本质,作为入门到这里就够了。加油!!!