在我所理解到的智好手环行业中,MCU须要对外挂的LCD刷图显示UI,一样平常UI都是16位图片
16位240240图片

首先须要将全体手环的UI都是通过原厂供应的工具烧录到外部Flash里面,刷图的处理就须要自己来完成
看到这里有兄弟会说,不便是个读外部FLASH嘛。对便是读一个外部FLASH而已,但是却有不少细节须要把稳
海内很多公司用国产BLE芯片做手环时,大多办理方案便是MCU+FLASH+LCD,个中LCD和FLASH还是同挂在一组SPI下面通过片选来切换,如果不做好刷图算法的优化,小屏幕0.96英寸的LCD刷图还勉强看得过去,可一旦到1.3英寸的LCD上效果就很差了,用户体验极其不理想,UI界面的切换一卡一卡的
主界面切图元素
下面
算法的实现逻辑
便是从FLASH里面取一部分就刷一部分到LCD里面,要把稳的便是处理好SPI的片选,让LCD和FLSH互斥,同一个时候只能读FLASH或者只能写LCD
看到这里有朋友会说为什么不全部取完再刷入LCD进行显示。好,如果全部取完可能就会堆栈溢出,引发程序崩溃跑飞,以是在开辟缓冲区时,是有讲究的,不能栈溢出,不多说直接上算法。
刷图算法
由于全体UI的构成切图大小不一,同时又要充分利用开辟的栈内存,提高效率,以是每一次从外部Flash里面取的行数要动态的变革。
根据刷图大小动态选择读取行数
看到这里还不点个关注吗[泪奔][泪奔][泪奔][泪奔]










