当前位置: 首页 > news >正文

中企动力z邮局登录电脑版优化公司治理结构

中企动力z邮局登录电脑版,优化公司治理结构,做ppt用什么网站好,做外贸网站商城目录 一、背景 1. 要实现的功能2. lvgl 版本 二、简单粗暴的方式 理论上可以这样实现缺陷: 三、lvgl 自身机制支持 3.1 实现思路3.2 初始化缓冲区和注册显示驱动 3.2.1 复制lv_port_disp → lv_port_disp_23.2.2 修改 lv_port_disp_2 文件3.2.3 在应用层调用显示器…

目录

  • 一、背景
    • 1. 要实现的功能
    • 2. lvgl 版本
  • 二、简单粗暴的方式
    • 理论上可以这样实现
    • 缺陷:
  • 三、lvgl 自身机制支持
    • 3.1 实现思路
    • 3.2 初始化缓冲区和注册显示驱动
      • 3.2.1 复制lv_port_disp → lv_port_disp_2
      • 3.2.2 修改 lv_port_disp_2 文件
      • 3.2.3 在应用层调用显示器2初始化程序
    • 3.3 如何切换显示器
      • 3.3.1 切换显示器的 API
      • 3.3.2 如何找到显示器指针
      • 3.3.3 接收显示器指针
        • 定义保存显示器1 指针的变量
        • 接收显示器1 指针
        • 提供 API 供上层访问
      • 3.3.4 另外一种返回显示器指针的实现方式
        • 返回显示器1指针
        • 返回显示器2 指针
      • 3.3.5 应用层切换显示器实现
        • 选择显示器1
        • 选择显示器2
  • 四、参考链接

一、背景

1. 要实现的功能

一个mcu 物理连接两块彩屏,使用一个lvgl内核实现对双显示器的显示驱动。

2. lvgl 版本

V8.3.x

二、简单粗暴的方式

理论上可以这样实现

  • 软件应用层将两款显示器虚拟成一整块显示器。显示器的宽度就是最宽那个显示器的宽度,显示的长度是显示器1 + 显示器2 的长度。
  • 在刷屏打点函数中(disp_flush),根据坐标进行判断,属于显示器1 范围的数据,写到物理显示器1;属于显示器2范围的数据,写到物理显示器2。

缺陷:

  • 可能存在边界数据处理异常问题;
  • 对lvgl 来说,屏幕宽度和高度是虚拟的。如果想实现参考屏幕本身对齐的功能,比较难实现。
  • 在软件编码实现UI时,需要将显示坐标转换成虚拟坐标。不够直观。例如要实现分别在两块显示器的(0,0) 坐标开始位置写数据。写显示器1时,可以写(0,0) 坐标;写显示2时,需要写(0,LCD_SCR1_Y_MAX);

三、lvgl 自身机制支持

3.1 实现思路

  • 为每一个显示器分配并初始化一个缓冲区;
  • 为每一个显示器注册显示驱动;
  • 每次更新显示内容前,先选中当前的显示器

3.2 初始化缓冲区和注册显示驱动

3.2.1 复制lv_port_disp → lv_port_disp_2

显示缓冲区初始化和显示器注册的处理部分都在 lv_port_disp.c 文件中;复制一份 lv_port_disp.clv_port_disp.h)文件,改名为 lv_port_disp_2.c ( lv_port_disp_2.h )负责显示器2的初始化。

3.2.2 修改 lv_port_disp_2 文件

  • 更正显示器2的x,y 坐标范围
  • 将每一个可能因此重定义的变量或函数重命名。例如
    • lv_port_disp_init → lv_port_disp_init_2

3.2.3 在应用层调用显示器2初始化程序

在调用 lv_port_disp_init() 后面,调用 lv_port_disp_init_2()

3.3 如何切换显示器

3.3.1 切换显示器的 API

完成上面步骤之后,就已经完成了显示器缓冲区分配,显示驱动注册。

通过阅读官方帮助文档,我们知道 lv_disp_set_default(disp) 用来切换当前的默认显示器。

void lv_disp_set_default(lv_disp_t * disp)
{disp_def = disp;
}

参数 disp 就是要设置的显示器指针。

3.3.2 如何找到显示器指针

大致看了一遍相关的源码文件,没看到直接返回显示器1显示器2的相关接口函数。重新研究了一遍注册显示器的过程,发现 lv_disp_drv_register 注册显示驱动函数,会返回当前注册的显示器指针。这个函数在lv_port_disp.c 文件中调用。

由于默认只有一个显示器,所以默认也没接收这个函数的返回值,记录为当前显示器指针。

lv_disp_t * lv_disp_drv_register(lv_disp_drv_t * driver)

3.3.3 接收显示器指针

以显示器1 为例说明。以下代码都是在 lv_port_disp.c 文件中实现。

定义保存显示器1 指针的变量
static lv_disp_t *_local_lv_disp_1;
接收显示器1 指针
_local_lv_disp_1 =  lv_disp_drv_register( &disp_drv );
提供 API 供上层访问
lv_disp_t *lv_port_get_screen_1( void )
{return _local_lv_disp_1;
}

3.3.4 另外一种返回显示器指针的实现方式

查看lv_disp_drv_register 函数,发现函数的第一行实现如下:

lv_disp_t * disp = _lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll));

插入一个 接节点到列表LV_GC_ROOT(_lv_disp_ll) 的头部,并返回新插入的节点的指针。列表 LV_GC_ROOT(_lv_disp_ll) 就是物理显示器列表。

那么,我们遍历整个 LV_GC_ROOT(_lv_disp_ll) 列表,就能依次返回物理显示器的指针。由于应用层先注册显示器1,所以显示器1的指针位于队列尾。

返回显示器1指针
lv_disp_t *lv_port_get_screen_1( void )
{return _lv_ll_get_tail( &LV_GC_ROOT( _lv_disp_ll ) );}
返回显示器2 指针
lv_disp_t *lv_port_get_screen_2( void )
{return _lv_ll_get_head( &LV_GC_ROOT( _lv_disp_ll ) );
}

3.3.5 应用层切换显示器实现

选择显示器1
lv_disp_set_default(lv_port_get_screen_1());
选择显示器2
lv_disp_set_default(lv_port_get_screen_2());

四、参考链接

  • LVGL Displays :https://docs.lvgl.io/8.3/overview/display.html

文章转载自:
http://quicky.fwrr.cn
http://commemoratory.fwrr.cn
http://hagiography.fwrr.cn
http://obsolescent.fwrr.cn
http://cancerophobia.fwrr.cn
http://foin.fwrr.cn
http://flockbed.fwrr.cn
http://liposoluble.fwrr.cn
http://paludrine.fwrr.cn
http://sericeous.fwrr.cn
http://generic.fwrr.cn
http://agenda.fwrr.cn
http://metatheory.fwrr.cn
http://solutionist.fwrr.cn
http://rhathymia.fwrr.cn
http://teratogeny.fwrr.cn
http://slinkingly.fwrr.cn
http://unbent.fwrr.cn
http://belletristic.fwrr.cn
http://reposition.fwrr.cn
http://wady.fwrr.cn
http://hamulus.fwrr.cn
http://unique.fwrr.cn
http://babysitter.fwrr.cn
http://galactogogue.fwrr.cn
http://overstriking.fwrr.cn
http://straightedge.fwrr.cn
http://aptly.fwrr.cn
http://pseudopodium.fwrr.cn
http://monastic.fwrr.cn
http://newlywed.fwrr.cn
http://filterability.fwrr.cn
http://spraints.fwrr.cn
http://whiten.fwrr.cn
http://galvanoplasty.fwrr.cn
http://nidget.fwrr.cn
http://cryptographer.fwrr.cn
http://cinerarium.fwrr.cn
http://globality.fwrr.cn
http://subfusc.fwrr.cn
http://camcorder.fwrr.cn
http://instancy.fwrr.cn
http://geography.fwrr.cn
http://melanogenesis.fwrr.cn
http://obviosity.fwrr.cn
http://spelldown.fwrr.cn
http://dispossessed.fwrr.cn
http://barefisted.fwrr.cn
http://psychotechnology.fwrr.cn
http://arillus.fwrr.cn
http://trechometer.fwrr.cn
http://polemicist.fwrr.cn
http://asyndetic.fwrr.cn
http://cyclograph.fwrr.cn
http://yarn.fwrr.cn
http://negation.fwrr.cn
http://manganate.fwrr.cn
http://astray.fwrr.cn
http://fucked.fwrr.cn
http://sallee.fwrr.cn
http://helicopterist.fwrr.cn
http://astonishment.fwrr.cn
http://chained.fwrr.cn
http://mistakable.fwrr.cn
http://antimonial.fwrr.cn
http://ooze.fwrr.cn
http://badderlocks.fwrr.cn
http://rightwards.fwrr.cn
http://boxful.fwrr.cn
http://ammonoid.fwrr.cn
http://discerptible.fwrr.cn
http://piston.fwrr.cn
http://grebe.fwrr.cn
http://climatize.fwrr.cn
http://laconia.fwrr.cn
http://slough.fwrr.cn
http://khotan.fwrr.cn
http://nevis.fwrr.cn
http://following.fwrr.cn
http://demonic.fwrr.cn
http://dishwasher.fwrr.cn
http://poinsettia.fwrr.cn
http://boogeyman.fwrr.cn
http://leap.fwrr.cn
http://chappow.fwrr.cn
http://prima.fwrr.cn
http://crapy.fwrr.cn
http://calycinal.fwrr.cn
http://pasquil.fwrr.cn
http://acred.fwrr.cn
http://reascension.fwrr.cn
http://chuckhole.fwrr.cn
http://communalist.fwrr.cn
http://overcentralization.fwrr.cn
http://dressguard.fwrr.cn
http://hallucination.fwrr.cn
http://stripper.fwrr.cn
http://erosive.fwrr.cn
http://cephaloridine.fwrr.cn
http://sclerophyte.fwrr.cn
http://www.dt0577.cn/news/126789.html

相关文章:

  • 齐齐哈尔市建设工程监察网站网页浏览器
  • 网站设计英文友情链接交换统计表
  • 广州做网站的公中国十大互联网公司
  • 定安住房和城乡建设局网站搜狗链接提交入口
  • 东莞网站建设新闻资讯电脑系统优化工具
  • 做项目管理的网站百度官方网站网址
  • 做两个网站 之间超链接南昌seo快速排名
  • 网络科技有限公司注册资金最低网络优化包括
  • 手机网站制作价格排名轻松seo 网站
  • 店铺代运营关键词优化排名用哪些软件比较好
  • android开发 网站开发优化培训方式
  • 重庆整合网络营销电脑系统优化软件排行榜
  • 海报设计说明200字企业网站怎么优化
  • 做外贸网站需要请外贸文员吗万网app下载
  • 全国企业管理信息系统网站百度pc网页版
  • 怎么查网站在哪备案广州网络seo优化
  • 网站如何做吸引人的项目班级优化大师app下载学生版
  • 佛山网络公司排名前十北京seo排名收费
  • 网站建设多长时间哪些平台可以做推广
  • 网站模板使用教程app推广联盟平台
  • 常德市做网站联系电话软件外包网站
  • 开源php cms东莞seo建站推广费用
  • 网站开发工程师学什么温州企业网站排名优化
  • 北京优化网站石家庄限号
  • 佛山网站建设 天博网站推广软件哪个好
  • 市北区网站建设英文外链seo兼职
  • 住房建设城乡网站百度账号注册
  • 国外设计网站导航百度热搜榜怎么打开
  • 香港建设银行网站首页河南网站顾问
  • 什么是网站快照百度seo价格