代码拉取完成,页面将自动刷新
.
├── app //应用入口
│ ├── BUILD.gn
│ ├── lv_port_disp.c //显示适配
│ ├── lv_port_disp.h
│ ├── lv_port_indev.c //输入适配
│ ├── lv_port_indev.h
│ └── main.c
├── BUILD.gn
├── custom //gui工具自定义代码
│ ├── BUILD.gn
│ ├── custom.c
│ ├── custom.h
│ ├── custom.mk
│ └── lv_conf_ext.h
├── drivers //外设驱动
│ ├── adc_key //按键驱动
│ ├── pwm_buzzer //蜂鸣器驱动
│ ├── spi_st7735s //lcd启动
│ └── temp_sensor //温度传感器驱动
├── generated //gui工具生成代码
│ ├── BUILD.gn
│ ├── events_init.c
│ ├── events_init.h
│ ├── generated.mk
│ ├── guider_customer_fonts
│ ├── guider_fonts
│ ├── gui_guider.c
│ ├── gui_guider.h
│ ├── images
│ └── setup_scr_change.c
├── lvgl //lvgl库
│ ├── BUILD.gn
│ ├── demos
│ ├── examples
│ ├── lv_conf.h
│ ├── lvgl.h
│ └── src
└── README.md
将整个工程分成了以下模块,每个模块由单独的一个BUILD.gn文件进行编译管理:
通过工程根目录下的BUILD.gn对所有模块进行整合,实现工程模块化。
import("//build/lite/config/component/lite_component.gni")
lite_component("smart_timekeeper") {
features = [
"drivers/spi_st7735s:spi_st7735s",
"drivers/adc_key:adc_key",
"lvgl:lvgl",
"app:lvgl_app",
"custom:custom",
"generated:generated"
]
}
static_library("custom") {
sources = [
"custom.c"
]
include_dirs = [
"//device/soc/hisilicon/hi3861v100/sdk_liteos/include",
".",
"../lvgl",
"../generated",
"../generated/guider_fonts",
"../lvgl/src",
]
}
generated:将工程下的所有.c文件加入sources,根据需要包含相关目录。
static_library("generated") {
sources = [
"guider_customer_fonts/guider_customer_fonts.h",
"guider_fonts/lv_font_Acme_Regular_10.c",
"guider_fonts/lv_font_Antonio_Regular_18.c",
"guider_fonts/lv_font_montserratMedium_12.c",
"guider_fonts/lv_font_montserratMedium_16.c",
"guider_fonts/lv_font_simsun_18.c",
"events_init.c",
"gui_guider.c",
"setup_scr_change.c",
]
include_dirs = [
".",
"guider_customer_fonts",
"guider_fonts",
"../lvgl",
"../lvgl/src",
"../custom",
]
}
#include <stdio.h>
#include <unistd.h>
#include "ohos_init.h"
#include "cmsis_os2.h"
#include "st7735s.h"
#include "lvgl.h"
#include "lv_port_disp.h"
#include "lv_port_indev.h"
#include "gui_guider.h"
#include "events_init.h"
#include "custom.h"
lv_ui guider_ui;
static void Smart_TimeKeeper_Task(void* arg)
{
(void) arg;
lcdInit();
lcdClear(0xFFFF);
lv_init(); //lvgl初始化
lv_port_disp_init(); //lvgl屏幕驱动初始化
lv_port_indev_init(); //lvgl输入初始化
setup_ui(&guider_ui); //加载UI
events_init(&guider_ui); //触发事件初始化
custom_init(&guider_ui); //自定义代码初始化
while (1)
{
lv_tick_inc(5); //计时器
lv_task_handler(); //lvgl执行函数
usleep(5000);
}
return 0;
}
static void Smart_TimeKeeper_Entry(void)
{
osThreadAttr_t attr;
attr.name = "Smart_TimeKeeper_Task";
attr.attr_bits = 0U;
attr.cb_mem = NULL;
attr.cb_size = 0U;
attr.stack_mem = NULL;
attr.stack_size = 1024 * 20;
attr.priority = osPriorityNormal;
if (osThreadNew(Smart_TimeKeeper_Task, NULL, &attr) == NULL) {
printf("[Smart_TimeKeeper_Task] Falied to create Smart_TimeKeeper_Task!\n");
}
}
SYS_RUN(Smart_TimeKeeper_Entry);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。