大家好,此次DIY,我做了一个电子相册
先上一波图片




项目介绍
外壳部分
这次外壳,嗯。。。他就是一个简单外壳
尺寸是我手量画出来的 刚好可以把屏幕放进去,周围还有一个小卡边
模型就不展示了
源码
项目结构

main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <FreeRTOS.h>
#include <task.h>
#include "board.h"
#include "log.h"
#include "lv_user_config.h"
#include "ui.h"
#include "lv_port_fs.h"
#define DBG_TAG "MAIN"
int main(void)
{
board_init();
if (0 != rfparam_init(0, NULL, 0))
{
LOG_E("PHY RF init failed!\r\n");
return 0;
}
lv_init();
lv_port_disp_init();
lv_port_indev_init();
ui_init();
xTaskCreate(lvgl_tick_task, (char *)"lvgl", 1024 * 10, NULL, 2, NULL);
vTaskStartScheduler();
}
ui.c
// This file was generated by SquareLine Studio
// SquareLine Studio version: SquareLine Studio 1.4.1
// LVGL version: 8.3.11
// Project name: SquareLine_Project
#include "ui.h"
#include "ui_helpers.h"
///////////////////// VARIABLES ////////////////////
// SCREEN: ui_Screen1
void ui_Screen1_screen_init(void);
void ui_event_Screen1(lv_event_t * e);
lv_obj_t * ui_Screen1;
// SCREEN: ui_Screen2
void ui_Screen2_screen_init(void);
void ui_event_Screen2(lv_event_t * e);
lv_obj_t * ui_Screen2;
// SCREEN: ui_Screen3
void ui_Screen3_screen_init(void);
void ui_event_Screen3(lv_event_t * e);
lv_obj_t * ui_Screen3;
// SCREEN: ui_Screen4
void ui_Screen4_screen_init(void);
void ui_event_Screen4(lv_event_t * e);
lv_obj_t * ui_Screen4;
lv_obj_t * ui____initial_actions0;
const lv_img_dsc_t * ui_imgset_[4] = {&ui_img_001_png, &ui_img_002_png, &ui_img_003_png, &ui_img_004_png};
///////////////////// TEST LVGL SETTINGS ////////////////////
#if LV_COLOR_DEPTH != 16
#error "LV_COLOR_DEPTH should be 16bit to match SquareLine Studio's settings"
#endif
#if LV_COLOR_16_SWAP !=0
#error "LV_COLOR_16_SWAP should be 0 to match SquareLine Studio's settings"
#endif
///////////////////// ANIMATIONS ////////////////////
///////////////////// FUNCTIONS ////////////////////
void ui_event_Screen1(lv_event_t * e)
{
lv_event_code_t event_code = lv_event_get_code(e);
lv_obj_t * target = lv_event_get_target(e);
if(event_code == LV_EVENT_CLICKED) {
_ui_screen_change(&ui_Screen2, LV_SCR_LOAD_ANIM_FADE_ON, 500, 0, &ui_Screen2_screen_init);
}
}
void ui_event_Screen2(lv_event_t * e)
{
lv_event_code_t event_code = lv_event_get_code(e);
lv_obj_t * target = lv_event_get_target(e);
if(event_code == LV_EVENT_CLICKED) {
_ui_screen_change(&ui_Screen3, LV_SCR_LOAD_ANIM_MOVE_LEFT, 500, 0, &ui_Screen3_screen_init);
}
}
void ui_event_Screen3(lv_event_t * e)
{
lv_event_code_t event_code = lv_event_get_code(e);
lv_obj_t * target = lv_event_get_target(e);
if(event_code == LV_EVENT_CLICKED) {
_ui_screen_change(&ui_Screen4, LV_SCR_LOAD_ANIM_OVER_TOP, 500, 0, &ui_Screen4_screen_init);
}
}
void ui_event_Screen4(lv_event_t * e)
{
lv_event_code_t event_code = lv_event_get_code(e);
lv_obj_t * target = lv_event_get_target(e);
if(event_code == LV_EVENT_CLICKED) {
_ui_screen_change(&ui_Screen1, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 500, 0, &ui_Screen1_screen_init);
}
}
///////////////////// SCREENS ////////////////////
void ui_init(void)
{
lv_disp_t * dispp = lv_disp_get_default();
lv_theme_t * theme = lv_theme_default_init(dispp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED),
false, LV_FONT_DEFAULT);
lv_disp_set_theme(dispp, theme);
ui_Screen1_screen_init();
ui_Screen2_screen_init();
ui_Screen3_screen_init();
ui_Screen4_screen_init();
ui____initial_actions0 = lv_obj_create(NULL);
lv_disp_load_scr(ui_Screen1);
}
其他代码 请参考附件
最初设想
最初,我是想这个相册至少实现两个功能
一个,就是目前这样,展示功能
另外一个,借助M61 8M Flash 可以实现上传图片的效果
可是,折腾了很久,一加 web sever 代码老是报错
我暂时先按这个参加活动吧
虽然,我这个项目不算太好。。。