[屏驱相关]【SWDM-QFP100-34SVEA3测评】+LVGL驱屏检测

2023-11-13

   这段时间参考华芯微特官方提供的SDK资源包,链接:SWM341资源(百度云盘分享),密码:byv2,验证了部分基础外设的工程示例。此次参考官方提供的LVGL工程示例,先将“基于LVGL纯净版”目录下的“SWM341_lvgl8.3.3_221221.zip”拷贝到一个没有中文路径的纯英文文件夹下,否则编译完成后,不能顺利“Go To Definition of 'xxx'”哦,由于前期环境已经搭建好,使用JLink V9直接下载到SWDM-QFP100-34SVEA3开发板中,结果跟网友遇到同样的问题,静态不能显示中英文字符。修改工程中“lv_conf.h”源文件中的指定存储宏定义,然而并不能解决字符显示的问题,显然这也不是分配的存储空间不够。

/*Required alignment size for buffers*/

#define LV_ATTRIBUTE_MEM_ALIGN_SIZE 4



/*Will be added where memories needs to be aligned (with -Os data might not be aligned to boundary by default).

* E.g. __attribute__((aligned(4)))*/

#define LV_ATTRIBUTE_MEM_ALIGN __attribute__((aligned(LV_ATTRIBUTE_MEM_ALIGN_SIZE)))



/*Attribute to mark large constant arrays for example font's bitmaps*/

#define LV_ATTRIBUTE_LARGE_CONST __attribute__((section(".SDRAM2")))



/*Compiler prefix for a big array declaration in RAM*/

#define LV_ATTRIBUTE_LARGE_RAM_ARRAY __attribute__((section(".SDRAM1")))

         由于LVGL显示需要用到SDRAM,使用分散加载文件,划分SDRAM1与SDRAM2的执行域,用户可根据需求自行更改存储空间大小,当然空间不能超过SDRAM的实际大小。使用sct分散加载,Keil中设置如下:


          分散加载配置文件内容如下:

; *************************************************************

; *** Scatter-Loading Description File generated by uVision ***

; *************************************************************



LR_IROM1 0x00000000 0x00080000  {    ; load region size_region

  ER_IROM1 0x00000000 0x00080000  {  ; load address = execution address

   *.o (RESET, +First)

   *(InRoot$Sections)

   .ANY (+RO)

   .ANY (+XO)

  }

  RW_IRAM1 0x20000000 0x00010000  {  ; RW data

   .ANY (+RW +ZI)

  }

  ER_SDRAM1 0x80000000 0x00200000  {             ; execution address

    *(.SDRAM1)

  }

}



LR_SPIFLASH 0x70000000 0x01000000  {      ; load region size_region

  ER_SDRAM2 0x80200000 0x00600000  {             ; execution address

    *(.SDRAM2)

  }

}

         根据上述配置可知,SDRAM1空间分配了2MB,SDRAM2空间分配了6MB,这是非常合理的。刷出来的静态图样举例如下:

 


      阅读main.c源代码可知,本例程提供了三个参考demo,可在“lv_conf.h”中对相应的宏定义进行关闭、使能,即可检测动态刷图的呈现效果。

/* main.c中的分支接口 */

#if LV_USE_DEMO_WIDGETS

    lv_demo_widgets();

#elif LV_USE_DEMO_BENCHMARK

    lv_demo_benchmark();

#elif LV_USE_DEMO_MUSIC

    lv_demo_music();

#endif

/* lv_conf.h中的宏定义设定demo工程接口 */

/*===================

 * DEMO USAGE

 ====================*/



/*Show some widget. It might be required to increase `LV_MEM_SIZE` */

#define LV_USE_DEMO_WIDGETS 0

#if LV_USE_DEMO_WIDGETS

#define LV_DEMO_WIDGETS_SLIDESHOW 0

#endif



/*Demonstrate the usage of encoder and keyboard*/

#define LV_USE_DEMO_KEYPAD_AND_ENCODER 0



/*Benchmark your system*/

#define LV_USE_DEMO_BENCHMARK 1

#if LV_USE_DEMO_BENCHMARK

/*Use RGB565A8 images with 16 bit color depth instead of ARGB8565*/

#define LV_DEMO_BENCHMARK_RGB565A8 0

#endif



/*Stress test for LVGL*/

#define LV_USE_DEMO_STRESS 0



/*Music player demo*/

#define LV_USE_DEMO_MUSIC 0

#if LV_USE_DEMO_MUSIC

    #define LV_DEMO_MUSIC_SQUARE    0

    #define LV_DEMO_MUSIC_LANDSCAPE 0

    #define LV_DEMO_MUSIC_ROUND     0

    #define LV_DEMO_MUSIC_LARGE     0

    #define LV_DEMO_MUSIC_AUTO_PLAY 0

#endif

        再修改成单个图样显示,这样更能清楚得看到SWM34SVET6刷图的流畅性。呈现的效果如下所示:

         当宏定义为“LV_USE_DEMO_MUSIC”工程时,编译竟然提示有4处error,都是关于“LV_FONT_MONTSERRAT_12”,“LV_FONT_MONTSERRAT_16”没有定义,更改相应的宏又提示内存空间不够了


        分享总结:①、参考华芯微特的SDK资料包,工程示例是非常丰富,但必须注意使用的开发板型号与屏的对应关系。
                        ②、同一款MCU的参考例程,发现使用的串口波特率不统一,一下是57600,一下是115200,不知道为啥要做这样的差异化。
                        ③、使用TF卡加载音视频、图片等必备资源时,没有相关文件提示需要将内存卡格式化FAT32格式,其它格式初始化会失败。
                        ④、读取TF内存卡文件时只能找到第1个视频文件,从第2个文件开始,会提示找不到指定的文件名,而该文件都已在内存卡的根目录。
---------------------
作者:yinwuqing110
链接:https://bbs.21ic.com/icview-3296814-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。
 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[屏驱相关]【SWDM-QFP100-34SVEA3测评】+LVGL驱屏检测 的相关文章

  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中

随机推荐

  • 【机器学习】14、sklearn

    文章目录 一 机器学习概览 二 分类 2 1 二分类器 2 多分类器 2 3 误差分析 三 训练模型 3 1 线性回归和逻辑回归 3 2 逻辑回归 3 3 softmax回归 练习题4 四 SVM 练习题5 五 决策树 练习题6 六 集成学
  • 微信小程序嵌套的H5使用小程序分享(分享微信好友或朋友圈)

    需求说明 嵌套在微信小程序中的H5想要使用小程序自带分享功能 分享H5的页面给微信好友或朋友圈 实现原理 H5中可使用wx miniProgram postMessage向小程序的webview发送消息 会触发组件的message事件 在小
  • kvm-ovirt-vdsm安装记录

    小技巧 1 fedaro 19自动查找最快yum源 yum install yum fastestmirror 2 libvirt启动sasl添加用户 saslpasswd2 c a libvirt admin 3 查看kvm模块 lsmo
  • 第十三届蓝桥杯A组Python组心得分享

    第一次写心得类的文章 趁着假期有时间 记录一下在准备这个比赛间的一些心得和一些问题的思路 前面是碎碎念 直接看问题解决思路的可以跳到后面 先说情况 省一 小题对了第一个 大题写出来了五个 不确定是否全部AC 认真准备这个比赛的时间不超过一周
  • 【今日CV 计算机视觉论文速览】Wed, 13 Mar 2019

    今日CS CV计算机视觉论文速览 Wed 13 Mar 2019 Totally 25 papers Interesting 自动医学图像分析 主要就x光乳腺癌检测 胸片CT肺结合检测 脑部颈部病变检测等方面展开研究 并阐述了如何生成数据
  • iOS左对齐自动换行collection样式

    前言 想必大家工作中或多或少会遇到下图样式的UI需求吧 像这种cell长度不固定 以此向右对齐排列的样式UI可以说是很常见的 实现方式 一般的实现可能主要是分一下两种 1 一种是用button依次排列实现 动态计算text宽度 记录之前一个
  • Ruby on Rails emoji表情通过json返回

    原因 大概意思是 emoji表情是5位字符 而to json as json最多支持4个字符 导致返回的emoji不完整 客户端就不会识别 导致乱码 解决方法 在config initializers文件夹下新建patches rb 文件
  • 【项目复盘React】react封装动态组件+组件懒加载(hook版)

    使用到的hook useContext 使用到的api lazy React 1 在utils文件夹下新建文件夹testContext 2 新建文件PersonContext js 导出一个Context对象实例 import React
  • 射频原理图设计checklist

    射频原理图设计checklist 持续更新 文章目录 射频原理图设计checklist 1 WiFi GPS测试兼容 2 SAR SENSER 的GPIO控制和电源供电需常开 3 射频收发器与基带芯片之间的IQ连接线需参考平台推荐 4 主集
  • WEB靶场系类搭建

    环境 windwos centos ubuntu DVWA 1 进 phpmyadmin创建dvwa数据库 2 修改配置文件 3 输入127 0 0 1 dvwa 安装 pikachu 1 直接修改配置文件 2 127 0 0 1 pika
  • js实现瀑布流布局

    实现思路是 收集列表元素数组 每列定宽不定高 列表元素全部相对于容器元素绝对定位 根据容器可视宽度计算每行的元素盛放个数 根据盛放个数先处理第一行 依次排列在第一行 处理后续元素 维护一个每列当前高度的数组 对于后续行的元素 依次往当前最低
  • 每日一库之Go 强大而灵活的电子邮件库:email

    发送邮件是一个很常见的需求 用户邮箱验证 邮箱召回等 Go 语言标准库自带 net smtp 库 实现了 smtp 协议 用于发送邮件 然而这个库比较原始 使用不方便 而且官方声明不再增加新功能 于是乎出现了一些强大的第三方邮件库 今天推荐
  • PSD 格式文件除了 PS ,还能用什么软件打开?

    有人问 除了 Photoshop 还有哪些软件能打开 PSD 格式文件呢 当我看到这个问题时 我立刻理解了他的烦恼 因为有段时间 我的电脑里没有安装 Photoshop 但有一次 我的同事发了一个 PSD 文件给我 我却无法联系到他 我急需
  • linux(centos7) 查看剩余磁盘空间大小

    df hl 查看磁盘剩余空间 df h 查看每个根路径的分区大小 du sh 目录名 返回该目录的大小 du sm 文件夹 返回该文件夹总M数 du h 目录名 查看指定文件夹下的所有文件大小 包含子文件夹 查看硬盘的分区 sudo fdi
  • 非方阵点乘算法

    非方阵点乘算法 基于 lt 算法4 gt 中的P12矩阵相乘 方阵 探索非方阵点乘 线代基础 能够点乘的矩阵 一定满足 前行 后列 算法思考 解决矩阵运算问题 切勿凭空想象 应脚踏实地 举个简单例子写在草稿纸上 并观察 各矩阵下标变化规律
  • git clone 失败或速度慢

    总之就是加代理yyds 具体做法 在github网址前面加上前缀 https ghproxy com 即可 git clone https ghproxy com https github com xxx git
  • Python—爬取小说案例(bs4方法)

    一 源码 import requests from bs4 import BeautifulSoup UA伪装 headers User Agent Mozilla 5 0 Windows NT 10 0 Win64 x64 AppleWe
  • mosquitto安装mysql插件 进行权限认证

    简介 因工作中需要对接物联网设备 设备数据的上传和下发都需要不同的连接账号作为topic 因此采用mqtt mysql的方式 动态的维护mqtt的账号 目录 简介 一 安装依赖 二 下载压缩包 三 安装mosquitto 四 安装mosqu
  • 关于VTK9 vs2019编译QVTK 过程中的记录

    环境 vtk9 0 QT5 12 PCL 1 12 vs2019 x64 这段时间下载了VTK 9 0 并利用vs2019对QVTK进行了编译 1 只要在编译过程中勾选了QT相关选项 就一定可以生成QVTK相关的头文件和库 编译过程网上已经
  • [屏驱相关]【SWDM-QFP100-34SVEA3测评】+LVGL驱屏检测

    这段时间参考华芯微特官方提供的SDK资源包 链接 SWM341资源 百度云盘分享 密码 byv2 验证了部分基础外设的工程示例 此次参考官方提供的LVGL工程示例 先将 基于LVGL纯净版 目录下的 SWM341 lvgl8 3 3 221