背景: 使用2.8寸LCD做图片功能,驱动是9341。 在做速度优化时,发现一个怪异问题: 如果每次计算一个像素后,就发送到屏幕,没有问题。 代码如下,这个是发送一行数据的代码,外部还有一个for循环控制多少行:
如果改为整理好一行数据后再一次发送,LCD就闪现白条,只是刷新过程出现,一屏刷新完成后,图片是正常的。 刷屏是一行一行刷,白条就出现在列方向上,出现位置随机,可能出现多条。 代码如下:
不知道各位大侠是否有这方面的经验。 1 屏幕硬件有问题? 2 9341初始化配置不对? 3 兼容性? 百思不得其姐 |
用字模软件取出数组,送过去,没有体会到RGB
评分
查看全部评分
{
*LcdData = *(pcc+i);
}
你的这个发送 估计是太快了,
你原来的发送每发一行 跳出去后会有一些别的命令执行,起到了延时的作用,
另外你看看, 发送协议里 有没有发送后的总线状态复位,或者是 检测标志
评分
查看全部评分
评分
查看全部评分
单像素发没有问题,一组发有问题,那基本就是发的太快了。
你的*LcdData在哪定义的?是一个地址指针,还是函数指针?
建议好好看TFT的时序,并且与你的作对比。
评分
查看全部评分
评分
查看全部评分
一开始我也以为是速度太快了,但是,白条只是闪现啊,最终的图片显示是对的,并没有白条。那么说明数据是对的,那是不是说明时序也是对的?那么速度并没有太快。仅仅是快速的刷屏影响了硬件。
为了验证这个问题,今天找一个焊一个新屏对比测试。
白条只是闪现,最后刷完屏幕,图片是正常的,
那就说明数据发送没有问题啊,进一步说,时序应该也没有问题吧?
屏幕是FSMC接口的,就是一个外部地址操作,没有设么状态查询。
找一个新屏幕对比一下先。
也常完各种屏。如果是自己设计的LCDPCB,是否设计上存在干扰,这种干扰分全屏刷时可能出现麻点,刷完后正常,也有出现行或列的。别人的PCB自己焊接的,问题不好说,如果压紧LCD和PCB问题消失,有虚焊的可能。软件上的问题少有出现这类现象。总觉得还是硬件问题。多种方法试试吧。
评分
查看全部评分
厂家给的初始化代码配置电源不正确,更换初始化代码后正常了。