数码之家

 找回密码
 立即注册
搜索
查看: 4722|回复: 26

[STM] 这个SSD1309还是很难搞定呀,其它的寻址模式不会有啥BUG?一言以蔽之-欲....

[复制链接]
发表于 2020-3-31 18:32:32 | 显示全部楼层 |阅读模式
本帖最后由 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
发表于 2020-3-31 18:42:44 来自手机浏览器 | 显示全部楼层
gpiob看看是不是用了jlink的端口
回复 支持 反对

使用道具 举报

发表于 2020-3-31 18:48:03 | 显示全部楼层

回帖奖励 +5 家元

不懂,不懂,哈哈哈:loveliness:
回复 支持 反对

使用道具 举报

发表于 2020-3-31 18:51:12 来自手机浏览器 | 显示全部楼层
优先考虑是程序问题  我之前试过用并口驱动彩屏也出过类似问题 刷屏位置不对 颜色也不对 后来发现是引脚初始化不对  DC引脚电平没处理好  搞了好久 才搞定!一个脚 一个脚的测试 看看哪个不受控 然后解决 你的这个可以先用io模拟SPI  搞定以后 在上 硬件SPI!
回复 支持 反对

使用道具 举报

发表于 2020-3-31 18:56:00 | 显示全部楼层

回帖奖励 +5 家元

不懂,帮顶,,,确实不懂。
回复 支持 反对

使用道具 举报

发表于 2020-3-31 19:07:45 | 显示全部楼层

回帖奖励 +5 家元

不懂,帮忙顶贴
回复 支持 反对

使用道具 举报

发表于 2020-3-31 19:13:09 | 显示全部楼层

回帖奖励 +5 家元

确实不懂
不懂,不懂
回复 支持 反对

使用道具 举报

发表于 2020-3-31 19:29:22 | 显示全部楼层

回帖奖励 +5 家元

论坛高手过来看看
回复 支持 反对

使用道具 举报

发表于 2020-3-31 19:48:39 | 显示全部楼层

回帖奖励 +5 家元

这个SSD1309还是很难搞定呀,其它的寻址模式不会有啥BUG吧?
https://www.mydigit.cn/forum.php?mod=viewthread&tid=138123
(出处: 数码之家)
回复 支持 反对

使用道具 举报

发表于 2020-3-31 19:49:13 | 显示全部楼层
估计得上示波器看看SPI波形了
回复 支持 反对

使用道具 举报

发表于 2020-3-31 20:03:03 | 显示全部楼层

回帖奖励 +5 家元

路过帮顶,祝早日解决
回复 支持 反对

使用道具 举报

发表于 2020-3-31 20:04:23 | 显示全部楼层

回帖奖励 +5 家元

估计坛子里真的懂这个的2位数吧
回复 支持 反对

使用道具 举报

发表于 2020-3-31 20:07:25 | 显示全部楼层

回帖奖励 +5 家元

这个SSD1309还是很难搞定呀,其它的寻址模式不会有啥BUG吧
回复 支持 反对

使用道具 举报

发表于 2020-3-31 20:08:25 | 显示全部楼层

回帖奖励 +5 家元

接个示波器看看
回复 支持 反对

使用道具 举报

发表于 2020-3-31 20:13:23 | 显示全部楼层

回帖奖励 +5 家元

路过帮顶,祝早日解决
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-31 20:17:07 | 显示全部楼层
算了,暂时放一边去,硬件层搞不好,应用层还是有一大堆事要做。先把矩形填充搞定吧,现在好多OLED库,无力吐槽,居然是按点显示字符的,一个8x8的点阵,居然要连续运行64次把64个点修改完毕再提交,好慢啊,干脆写个矩形填充不好吗?把8x8点阵当成一个矩形批量修改数据,要知道Cortex-M3是32bit的系统,最大可以同时修改32bit数据的,8x8,16x16下就可以按字或者半字批量操作,一个点阵8次就处理完了,省去不停调用DrawPiont函数64次了。
我自己写的矩形填充我都逐语句运行过的,确保内存内容是被正确修改的,这个刷新问题跟刷新数据错误是没有关系的。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2020-3-31 23:44:31 | 显示全部楼层

回帖奖励 +5 家元

la45088d1 发表于 2020-3-31 20:17
算了,暂时放一边去,硬件层搞不好,应用层还是有一大堆事要做。先把矩形填充搞定吧,现在好多OLED库,无力 ...

32位上竟然拿汇编写,NB
不过真心不建议自己从头造轮子

SimpleGUI 是用了缓冲技术
https://gitee.com/Polarix/simplegui
回复 支持 反对

使用道具 举报

发表于 2020-3-31 23:50:20 | 显示全部楼层

回帖奖励 +5 家元

是不是刷新太快了

打赏

参与人数 1家元 +50 收起 理由
la45088d1 + 50 猜对有奖

查看全部打赏

回复 支持 2 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-9 00:34 , Processed in 0.218400 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表