y369369 发表于 2024-12-4 16:53:52

【Avnet | NXP FRDM-MCXN947试用活动】数字仪表盘设计

第一篇写的略显草率,第二篇就继续详细的搞搞GUI吧,看到AppHub里边还是有很多好玩的Demo的,这次就来试试数字仪表吧

## 简介

最新的GUI-Guider-1.7.2-GA 已经支持了FRDM-MCXN947 开发板,有了GUI-Guider 在使用lvgl时就可以拖拽式生成界面,让我门高效的完成UI 界面的开发。

## 配置工程

**打开GUI-Guider 新建工程选择LVGL 版本选择V8.3.10**

!(https://www.eefocus.com/forum/data/attachment/forum/202412/04/164853y0eugquxkkgeduzi.png)

**选择FRDM-MCXN947开发板**

!(https://www.eefocus.com/forum/data/attachment/forum/202412/04/164907r2iw6gnq6w3hveq6.png)

**选择DigitalCluster 示例程序**

!(https://www.eefocus.com/forum/data/attachment/forum/202412/04/164923g02f2sv7egrgvrcp.png)

**进入UI设置界面就可以拖动创建对象了,demo界面如下**

!(https://www.eefocus.com/forum/data/attachment/forum/202412/04/164939wnp8n9nilj9hin4f.png)

**点击生如下button即可启动模拟器运行**

!(https://www.eefocus.com/forum/data/attachment/forum/202412/04/164955is42oahci8r32oc4.png)

**该区域button定义如下**

!(https://www.eefocus.com/forum/data/attachment/forum/202412/04/165015b8d2ajr8akd52lda.png)

**模拟器运行效果如下,默认仪表盘回显示模拟的车速及power,ODO信息也会随时间变化**

!(https://www.nxpic.org.cn/module/forum/data/attachment/forum/202406/28/095848tfifmihm8f7ggwxb.gif)

**上述的配置仪表的显示是如何更新的?**
看了上述demo,第一个疑问就是这些数据的更新方式,通过查看生成的代码发现,是在home主界面加载和销毁的时候回创建个100m周期 task_meter 的定时器并注册speed_meter_timer_cb 函数,在回调函数内刷新显示。

!(https://www.eefocus.com/forum/data/attachment/forum/202412/04/165030vo9lrd701d0lxb8v.png)

在用户实现代码 custom.c 中实现回调函数刷新显示

!(https://www.eefocus.com/forum/data/attachment/forum/202412/04/165042jlj26j2jpjv277ij.png)

**HOME 界面的对应的event配置如下同上述的event代码配置是一致的**

!(https://www.eefocus.com/forum/data/attachment/forum/202412/04/165102ijwga6mre6j6e7xa.png)

**我们已经知道了刷新是在speed_meter_timer_cb 函数内实现的,demo里的转向灯是不闪烁的,我们修改代码增加刷新显示**

!(https://www.eefocus.com/forum/data/attachment/forum/202412/04/165118rmuvvqjmxj7pu6kx.png)

## 下载板卡验证

验证了模拟器的运行,将上上述修改下载到板子中看看我们修改的转向灯测试代码是否实现闪烁了。
修改前模拟器转向不闪烁
!(https://www.nxpic.org.cn/module/forum/data/attachment/forum/202406/28/103858tgglacap5pc5a72t.gif)

修改后板子运行转向灯闪烁
!(https://www.nxpic.org.cn/module/forum/data/attachment/forum/202406/28/102754cbif2xi0widxiwvx.gif)

下载到板子上转向灯已经按照预期的闪烁了。

## LVGL 显示任务CPU占用率

一颗MCU是否适合坐GUI业务,GUI占用的CPU 使用率是个很重要的指标,我们基于上一帖((https://www.nxpic.org.cn/module/forum/thread-803374-1-1.html))的基础上,使用perf_counter 测量下LVGL task 的cpu 使用率。

!(https://www.eefocus.com/forum/data/attachment/forum/202412/04/165135xcvrvczrllhbycx1.png)

发现CPU使用率为49%,这个cpu 使用率还是可以的外加另外一个core 完全可以用来做带UI界面的开发。

**后续可以增加can通信,使用can线上的数据来triger 仪表显示,这样就跟实车上的一致了**

功能还是很好用的,后续就看看其他玩法了,评测就到这里结束了,掌声!

andeyqi 发表于 2025-1-2 10:38:24

这个是复制粘贴过来的吧 https://www.nxpic.org.cn/module/forum/thread-803406-1-1.html
页: [1]
查看完整版本: 【Avnet | NXP FRDM-MCXN947试用活动】数字仪表盘设计