提升刷屏速度,降低显示水纹效果的一点想法

一般再nordic上画图都是采用emwin库函数画图,但是这样都比较慢,因为库函数都是每次读取图片的一行数据写入屏中显示,画图过程中水纹比较明显,所以之前自己从flash中读取图片数据,不采用库函数,自己读取显示可以一次从flash中,读取超过一行的数据,这样可以明显的,提升刷屏效果,但是当图片数据比较大,刷屏的频次比较快时,也会有水纹效果,所以还是有点不如人意。
所以这里我想,是不是可以在flash中划分一块整屏大小的区域,用来存储一整屏大小的数据,当那些图片比较大,刷屏频次快的界面时,可以先将这一整屏的数据写入到flash中划分的区域,然后再将falsh中的数据读取出来写入到屏幕中显示;相比之前,这样的话每次只需要刷一整屏的数据就可以完成显示,相当于在flash中写入一张整屏大小图片的数据,然后将这张图片的数据读取出来显示,按我之前的自己从flash中读取数据显示的方法,在240*240的屏幕上,刷一整屏的数据大概需要200ms,速度应该算是比较快的,但是在显示指针表盘时,特别是在显示秒针的情况下,由于视觉暂留效果,还是会有轻微的刷屏水纹效果。
或许还可以更进一步,将屏幕划分为四块区域,每块区域在flash对应的有一块存储空间,当屏幕上的显示部分需要改动的不太大时,比如只是文字,这样就可以直接显示在屏幕上;如果要改动秒针,或者要刷新的某一部分短时间内要多次刷新,就只需要改动这四块区域中的某一块,或者两块,这样的话,需要刷新的部分就显著减少了,刷屏是的效果也会比较好。

你可能感兴趣的:(GUI)