交通信号灯
交通信号灯¶
接线要求¶
-
GND连接开发板GND
-
R接开发板GPIO09
-
Y接开发板GPIO10
-
G接开发板GPIO08
项目编写¶
- 在
applications/genkipi/app
下新建trafic_light
文件夹 - 在
trafic_light
下新建main.c
文件 - 在
trafic_light
下新建BUILD.gn
文件
代码部分¶
main.c
文件内容
//
// Created by wt on 0020.
//
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "ohos_init.h"
#include "cmsis_os2.h"
#include "iot_gpio.h"
#include "iot_io.h"
#include "genki_pin.h"
static void led_task(void*arg) {
//初始化GPIO口
//9:R 10:Y 8:G
IoTGpioInit(IOT_IO_NAME_9);
IoTGpioInit(IOT_IO_NAME_10);
IoTGpioInit(IOT_IO_NAME_8);
//设置IO口功能为GPIO
IoTIoSetFunc(IOT_IO_NAME_9, IOT_IO_FUNC_9_GPIO);
IoTIoSetFunc(IOT_IO_NAME_10, IOT_IO_FUNC_10_GPIO);
IoTIoSetFunc(IOT_IO_NAME_8, IOT_IO_FUNC_8_GPIO);
//设置IO口输出方向:输出
IoTGpioSetDir(IOT_IO_NAME_9,IOT_GPIO_DIR_OUT);
IoTGpioSetDir(IOT_IO_NAME_10,IOT_GPIO_DIR_OUT);
IoTGpioSetDir(IOT_IO_NAME_8,IOT_GPIO_DIR_OUT);
//不断输出高低电压
while (1){
//红灯
IoTGpioSetOutputVal(IOT_IO_NAME_9,IOT_GPIO_VALUE1);
IoTGpioSetOutputVal(IOT_IO_NAME_10,IOT_GPIO_VALUE0);
IoTGpioSetOutputVal(IOT_IO_NAME_8,IOT_GPIO_VALUE0);
usleep(1000*1000);
//绿灯
IoTGpioSetOutputVal(IOT_IO_NAME_9,IOT_GPIO_VALUE0);
IoTGpioSetOutputVal(IOT_IO_NAME_10,IOT_GPIO_VALUE0);
IoTGpioSetOutputVal(IOT_IO_NAME_8,IOT_GPIO_VALUE1);
usleep(1000*1000);
//黄灯
IoTGpioSetOutputVal(IOT_IO_NAME_9,IOT_GPIO_VALUE0);
IoTGpioSetOutputVal(IOT_IO_NAME_10,IOT_GPIO_VALUE1);
IoTGpioSetOutputVal(IOT_IO_NAME_8,IOT_GPIO_VALUE0);
usleep(1000*1000);
}
}
static void start(void) {
osThreadAttr_t attr;
attr.name = "thread_1";
attr.attr_bits = 0U;
attr.cb_mem = NULL;
attr.cb_size = 0U;
attr.stack_mem = NULL;
attr.stack_size = 1024 * 4;
attr.priority = 25;
if (osThreadNew(led_task, NULL, &attr) == NULL) {
printf("Falied to create led_task!\r\n");
}
}
APP_FEATURE_INIT(start);
项目Build.gn¶
trafic_light
目录下 BUILD.gn
内容为
static_library("trafic_light") {
sources = [
"main.c"
]
include_dirs = [
"//utils/native/lite/include",
"//base/iot_hardware/peripheral/interfaces/kits",
"//device/itcast/genkipi/interfaces/kits"
]
}
外部Build.gn¶
trafic_light
文件夹上一级目录下BUILD.gn
内容为
import("//build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
"trafic_light"
]
}