|
本帖最后由 la45088d1 于 2020-4-1 10:40 编辑
根据自己的需求,没有使用众多库里的页面寻址模式,使用了垂直寻址模式,但是发现这个模式好像很不正常。
昨天发现的诡异问题貌似一半的锅都跟GPIO有关,GPIOB的几个引脚似乎是挂了,咋挂的我也不知到,导致灌入液晶屏的数据是随机错误的,结果导致显示的内容是完全随机的出错。为啥能发现呢?因为我拿万用表4位半的测试了SPI的输出发现在空闲下有时候是低电平,有时候居然有1V多的异常电压,还在跳,此时程序并未发送数据。今天换成了SPI1使用了GPIOA就正常了,屏幕虽然依旧没办法显示正确的内容,但起码显示的错误内容是固定的,不存在运行10次出现10个不同结果了。
但是,依旧是错的显示数据完全不懂为啥。每次刷新屏幕都是一起刷新0x400个字节,就是全屏刷新,在刷新之前都通过0x21,0x22这两个指令去设置初始的页地址和段地址为0,但是就是没用。同一批内容多次刷新总能刷新到屏幕的不同位置,就好像每一次的起始刷新地址都是不一样的,但是我都设置了刷新地址了???而且如果每一次批量刷新前如果不设置刷新地址是不能显示的,说命令没用吧,确实没用,刷新地址确实设置不了;但是说有用吧,也有用,不发送命令啥显示内容都没有,哪怕是错误的内容。
更让人头皮发麻的是在发送控制命令的时候,屏幕上会快速跳过命令字节对应的数据内容,造成了刷新时候的残影,有一条断续的线,就好像命令本身被当作显示数据发送了一样,更诡异的是如果真的把命令当成数据去发送,或者把数据当成命令去发送都不会得到任何显示。当然,我考虑过D/C#引脚的电平问题,还特意调试的时候用表测了,命令时D/C#低电平,数据时D/C#高电平没问题。而且如果真有问题的话,按照上述的,人为的去混乱这个过程也不会得到一样的结果。
反正我也不知到这鬼东西到底是个什么路数,简直没有头绪可理。
现在这东西就这样,一共显示好几个图形,首先是画几个点,然后刷新进去,接下来就是画几个矩形刷进去,然后重复,为了方便观察,这一套图形的位置都是不变的,都在0段地址0页地址开始绘制,不断循环,结果效果就如你们所见,实际显示在屏幕的内容一直在不断前进上升,鬼知道咋回事。
恭喜20楼网友猜对了!!现在已经调试通过。
后记:今年这届网友不行啊,有点水,回帖奖励是鼓励提大家提出任何的可能性,不是鼓励大家灌水的,这能扯到SSD上去也是牛的一批。
欲速则不达哦,见小利则大事不成。ASM中极尽学识,灵感优化效率没想到竟然是毒药。写命令后如果不延迟让这个老年手速般的液晶控制器响应的话,它就真的出错给你看。但是要延时多少还在实验中。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|