
LVGL
C_ROOKIES
总结技术点点滴滴。沉着冷静专注。
展开
-
LVGL 笔记
1.移植LVGL。总体来说比较简单,配置好分辨率,配置好动态内存 内存池大小。在l中配置双缓冲。要实现双缓冲,还得开启中断,修改一下驱动。实际就是一个刷新指定区域的函数,但是如果使用的了 DMA,我们就要修改,不用在这里死等,我们需要使用中断,在中断中调用lv_disp_flush_ready 来清空标志位,这里面的标志位表示上一帧的数剧已经发送完成了。所以我们看到这里需要的内存可大可笑,所以大一点的内存就可以更流畅运行。省去很多不必要的计算开销。2.大概运行机制原创 2021-05-19 14:45:32 · 1763 阅读 · 0 评论 -
LVGL 双缓冲
双缓冲是一个刷的过程中,另外一个在处理数据,可以实现同时进行,不用等待当前刷屏完成。所以flush这个是清除标志位,需要等待上次刷屏结束但是感觉这一点如果上了RTOS 这个地方的任务不释放。想了下,如果在OS上运行,在whileI(vdb->flushing) 这里就需要等待 DMA的传输完成中断发出的信号量这个wait_cb 多半就是接口...原创 2021-02-27 10:55:34 · 5709 阅读 · 0 评论 -
XPT2046调试
总结,使用硬件SPI去读 触摸数据。最主要原因自己开始没有调试出来是,因为把 SDI和SDO搞错了。观察到数据有 阶梯电平,以后凡是发现阶梯电平,考虑发送接收是不是反了。电阻触摸比较简单,直接发送对应的指令 0xD0 0x90读取 横竖行的触摸数据。找到边缘最大值和最小值。计算刻度。/** * @file XPT2046.c * *//********************* * INCLUDES *********************/#include原创 2020-07-09 18:00:45 · 1337 阅读 · 0 评论 -
GD350移植LVGL
1.移植过程发现很多头文件include 加了准确的文件位置。由于本人一直是自己在工程中加的inc path.按照这个移植来说,就不要加inc.2.移植过程发现 有一个lv_conf_internal.h 以为是lv_conf的模版,这个是默认的配置。上一级的lv_conf_template.h才是模版。3.设置动态内存的时候发现如果设置比较小,使用LV的动态内存模块会出现 hardfault,使用microlib的mallloc这些函数就不会,可以正常运行。移植也很简单,只需要实现画图功能原创 2020-07-06 17:18:24 · 752 阅读 · 0 评论 -
LVGL移植到AT403
考虑到GUI一般比较吃内存,使用403,本芯片可以配置开启最大224KB SRAM。和其它开源软件类似,移植源码,移植接口,加几个头文件基本上就OK了。这个GUI最简单的是只要移植刷位图就可以。代码可以优化不少,直接使用DMA可以快速的发送一些列连续的数据。测试SPI 50M处理480x320.效果还行。配置刷多少行。如果内存够直接开两个显存,效果最完美,内存不大不小,可以适当配置。内存耗费:60*320*2*2 = 75K(显示缓冲区) 64KB动态内存池。由于我使用的原创 2020-07-03 16:41:27 · 794 阅读 · 4 评论