请选择 进入手机版 | 继续访问电脑版
查看: 2179|回复: 5

[原创] LPC55S16板卡运行GUI-Guider软件生成的代码

  [复制链接]
  • TA的每日心情
    开心
    前天 08:28
  • 签到天数: 1313 天

    [LV.10]以坛为家III

    124

    主题

    2825

    帖子

    31

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    7552
    最后登录
    2024-3-27
    发表于 2021-3-25 11:11:35 | 显示全部楼层 |阅读模式
        今天来测试下使用LPC55S16芯片板卡来运行下GUI-Guider软件生成的代码.

        使用的板卡是之前参与活动DIY的板卡 https://www.nxpic.org.cn/module/forum/thread-621052-1-1.html
       
        一、GUI-Guider软件设计界面


        设计过程可以看之前的帖子https://www.nxpic.org.cn/module/forum/thread-621968-1-1.html生成图形界面
       
        1.1、设计一个带图片背景的界面
      
        简单的图片背景上面放置两行文字。
        005.png


        1.2、生成代码并模拟运行
        001.png


        模拟运行没有问题,下面将生成的代码,放置到我的工程文件中。


        二、板卡编辑工程文件

        2.1、GUI-Guider软件生成的代码在项目目录下的generated里
           006.png
           generated文件内容
           007.png


        主要的代码:
       
    1. /*
    2. * Copyright 2021 NXP
    3. * SPDX-License-Identifier: MIT
    4. */

    5. #include "lvgl/lvgl.h"
    6. #include <stdio.h>
    7. #include "gui_guider.h"
    8. #include "events_init.h"


    9. void setup_scr_screen(lv_ui *ui){

    10.         //Write codes screen
    11.         ui->screen = lv_obj_create(NULL, NULL);

    12.         //Write codes screen_label1
    13.         ui->screen_label1 = lv_label_create(ui->screen, NULL);
    14.         lv_label_set_text(ui->screen_label1, "HELLO NXPIC!");
    15.         lv_label_set_long_mode(ui->screen_label1, LV_LABEL_LONG_BREAK);
    16.         lv_label_set_align(ui->screen_label1, LV_LABEL_ALIGN_CENTER);

    17.         //Write style LV_LABEL_PART_MAIN for screen_label1
    18.         static lv_style_t style_screen_label1_main;
    19.         lv_style_init(&style_screen_label1_main);

    20.         //Write style state: LV_STATE_DEFAULT for style_screen_label1_main
    21.         lv_style_set_radius(&style_screen_label1_main, LV_STATE_DEFAULT, 0);
    22.         lv_style_set_bg_color(&style_screen_label1_main, LV_STATE_DEFAULT, lv_color_make(0xff, 0xff, 0xff));
    23.         lv_style_set_bg_grad_color(&style_screen_label1_main, LV_STATE_DEFAULT, lv_color_make(0xff, 0xff, 0xff));
    24.         lv_style_set_bg_grad_dir(&style_screen_label1_main, LV_STATE_DEFAULT, LV_GRAD_DIR_VER);
    25.         lv_style_set_bg_opa(&style_screen_label1_main, LV_STATE_DEFAULT, 255);
    26.         lv_style_set_text_color(&style_screen_label1_main, LV_STATE_DEFAULT, lv_color_make(0x17, 0x14, 0xe1));
    27.         lv_style_set_text_font(&style_screen_label1_main, LV_STATE_DEFAULT, &lv_font_montserratMedium_16);
    28.         lv_style_set_text_letter_space(&style_screen_label1_main, LV_STATE_DEFAULT, 2);
    29.         lv_style_set_pad_left(&style_screen_label1_main, LV_STATE_DEFAULT, 0);
    30.         lv_style_set_pad_right(&style_screen_label1_main, LV_STATE_DEFAULT, 0);
    31.         lv_style_set_pad_top(&style_screen_label1_main, LV_STATE_DEFAULT, 0);
    32.         lv_style_set_pad_bottom(&style_screen_label1_main, LV_STATE_DEFAULT, 0);
    33.         lv_obj_add_style(ui->screen_label1, LV_LABEL_PART_MAIN, &style_screen_label1_main);
    34.         lv_obj_set_pos(ui->screen_label1, 42, 40);
    35.         lv_obj_set_size(ui->screen_label1, 156, 0);

    36.         //Write codes screen_label2
    37.         ui->screen_label2 = lv_label_create(ui->screen, NULL);
    38.         lv_label_set_text(ui->screen_label2, "LVGL GUI");
    39.         lv_label_set_long_mode(ui->screen_label2, LV_LABEL_LONG_BREAK);
    40.         lv_label_set_align(ui->screen_label2, LV_LABEL_ALIGN_CENTER);

    41.         //Write style LV_LABEL_PART_MAIN for screen_label2
    42.         static lv_style_t style_screen_label2_main;
    43.         lv_style_init(&style_screen_label2_main);

    44.         //Write style state: LV_STATE_DEFAULT for style_screen_label2_main
    45.         lv_style_set_radius(&style_screen_label2_main, LV_STATE_DEFAULT, 0);
    46.         lv_style_set_bg_color(&style_screen_label2_main, LV_STATE_DEFAULT, lv_color_make(0xff, 0xff, 0xff));
    47.         lv_style_set_bg_grad_color(&style_screen_label2_main, LV_STATE_DEFAULT, lv_color_make(0xff, 0xff, 0xff));
    48.         lv_style_set_bg_grad_dir(&style_screen_label2_main, LV_STATE_DEFAULT, LV_GRAD_DIR_VER);
    49.         lv_style_set_bg_opa(&style_screen_label2_main, LV_STATE_DEFAULT, 255);
    50.         lv_style_set_text_color(&style_screen_label2_main, LV_STATE_DEFAULT, lv_color_make(0x00, 0x00, 0x00));
    51.         lv_style_set_text_font(&style_screen_label2_main, LV_STATE_DEFAULT, &lv_font_montserratMedium_16);
    52.         lv_style_set_text_letter_space(&style_screen_label2_main, LV_STATE_DEFAULT, 2);
    53.         lv_style_set_pad_left(&style_screen_label2_main, LV_STATE_DEFAULT, 0);
    54.         lv_style_set_pad_right(&style_screen_label2_main, LV_STATE_DEFAULT, 0);
    55.         lv_style_set_pad_top(&style_screen_label2_main, LV_STATE_DEFAULT, 0);
    56.         lv_style_set_pad_bottom(&style_screen_label2_main, LV_STATE_DEFAULT, 0);
    57.         lv_obj_add_style(ui->screen_label2, LV_LABEL_PART_MAIN, &style_screen_label2_main);
    58.         lv_obj_set_pos(ui->screen_label2, 70, 77);
    59.         lv_obj_set_size(ui->screen_label2, 100, 0);
    60. }
    复制代码



        2.2、将generated文件复制到自己的工程文件中。
      
        003.png


        添加后,编译报错,应该是程序的代码超出芯片内存空间。


        2.3、将上面GUI-Guider软件工程文件中的背景图片删除,重新生成代码
        004.png


        2.4、再次仿真运行下
        002.png
       
        2.5、重新将生成的项目文件generated复制到项目中,重新编译。


        008.png

       

        编译通过


        三、板卡运行


        1000.jpg
       
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    6 天前
  • 签到天数: 1334 天

    [LV.10]以坛为家III

    88

    主题

    4290

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9020
    最后登录
    2024-3-28
    发表于 2021-3-25 11:21:08 | 显示全部楼层
    看这个软件生成的代码,这么多行要是手敲需要的时间貌似还挺长的
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    前天 08:28
  • 签到天数: 1313 天

    [LV.10]以坛为家III

    124

    主题

    2825

    帖子

    31

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    7552
    最后登录
    2024-3-27
     楼主| 发表于 2021-3-25 11:24:24 | 显示全部楼层
    jobszheng5 发表于 2021-3-25 11:21
    看这个软件生成的代码,这么多行要是手敲需要的时间貌似还挺长的

    还是软件生成的代码效率高,还不容易出错
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-12-20 10:17
  • 签到天数: 274 天

    [LV.8]以坛为家I

    0

    主题

    988

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2233
    最后登录
    2023-12-27
    发表于 2021-3-27 11:08:15 | 显示全部楼层
    好棒呀
    有阳光的一天
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:33
  • 签到天数: 1719 天

    [LV.Master]伴坛终老

    4

    主题

    6976

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    11095
    最后登录
    2024-3-28
    发表于 2021-3-27 21:31:12 | 显示全部楼层
    好棒
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-12-20 14:11
  • 签到天数: 328 天

    [LV.8]以坛为家I

    3

    主题

    1345

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    5208
    最后登录
    2024-3-28
    发表于 2021-3-29 10:39:44 | 显示全部楼层
    不错      
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-3-29 08:14 , Processed in 0.128118 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表