1.有关lvgl的移植
许多大佬已经做了非常详尽的教程,我在这里也就不做过多赘述了。
只强调一点,编译一定要c99,不要随便动库文件的路径,还有最重要的,如果你用不上,编译时一定要把example内除了port文件外的都删掉!!!(我能说我忘记删导致编译报错被折磨了么)
2.有关移植时会屏会闪的问题
这里先推荐,假如出现显示问题,可以用手机的视角去拍摄屏幕,可以看到肉眼看不到的问题。
在做好dis_flush显示打点函数后,发现显示会一闪一闪的,显示效果非常差,当时感到非常纳闷,查找了一番之后,发现问题出在驱动方式上。
在dma输出数据时,我是采用的双buff切换方式来输出数据,但是速度太快也会导致在前一个图像数据还没有发完,下一个图像数据又发过来了,
故我在dma里加了一个完成传输的标志,并放在lvgl打点函数里做判断,问题成功解决
3.关于背景颜色的修改
lvgl默认的背景颜色是白色背景想要针对某个控件做背景颜色的设置,或者对主屏幕做背景颜色设置,最方便的是下面这个函数。
void lv_obj_set_style_bg_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)
直接把对象设置颜色即可。
但是!!!!!
重点来了
假如你设置了对象的背景颜色,却发现没有生效,还是和主屏幕一样的背景颜色,可能你会对此感到疑惑不解。
其实问题出在一个你以为没有关系的数值,透明度上。
简单的来说,默认的透明度都是满值,所以主屏幕的背景会透出来,自然没有你设置的颜色背景啦
void lv_obj_set_style_bg_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
调用这个函数,将透明度改到255,问题成功解决哈哈。
结尾
本人是嵌入式萌新,在学习的过程中,遇到了这些问题,故发出来,以一个萌新的视角给同是萌新的你避下坑,也欢迎大佬们交流指正