- 打卡等级:以坛为家I
- 打卡总天数:392
- 最近打卡:2025-05-01 15:00:39
荣誉版主
- 积分
- 2556
|
发表于 2024-9-2 11:43:43
|
显示全部楼层
驱动部分没有问题,花屏的原因确实是显示自定义的数字“1”之前,没有先“清屏”的结果。
在这个屏幕上显示图片需要先执行扩充功能的指定(0x34),然后向屏幕芯片里的16×64字节的缓存空间里写入数据(对应屏幕上的64行,每行16根小横棍,一共128×64点阵),
然后执行开启显示指令(0x36, 0x30),是把缓存里的内容显示到屏幕上。
没有经过初始化的缓存空间里的数据是乱码,在执行(0x34)指令之后,再执行开启显示指令(0x36, 0x30),是把缓存里的内容显示到屏幕上,也就是一片花屏。
而程序里执行的 LCD12864Clear 函数,只调用了清屏指令(0x01),是把屏幕上的内容清除掉,并不能对缓存里的数据进行清空操作,
所以程序里显示图片的 LCD12864DisplayImage 函数,在执行(0x34)指令之后,只是对指定的区域写入了“数字1”的数据,并没有对其它区域的数据进行操作,
于是在执行开启显示指令之后,是把缓存里的内容全都显示到屏幕上,就出现了有数字有花屏的画面。
可以先显示一张128×64点阵的空白图片(1024个数据全是0),就相当于清空缓存里的数据了,之后再显示自己的16×32点阵的图片,屏幕上就干净了。
|
|