数码之家

 找回密码
 立即注册
搜索
查看: 11953|回复: 8

折腾3D打印机(4)LCD12868花屏问题的解决方案

[复制链接]
发表于 2020-5-1 22:41:42 | 显示全部楼层 |阅读模式
本帖最后由 dgpower 于 2020-5-7 21:52 编辑

最新的marlin 1.1.X固件,不少小伙伴刷机后出现花屏现象
感谢@水表君 的提示,我去外面扒拉了一圈,终于在这个讨论帖里找到了思路,并已经在我的Ramps1.4主板上测试通过了:

1、记录下 Configuration.h里面的主板型号,我的主板是BOARD_RAMPS_14_EFB
     #define MOTHERBOARD BOARD_RAMPS_14_EFB
2、打开ultralcd_st7920_u8glib_rrd.h,找到下面这一行代码(一般是在第56行)
     #elif MB(MINIRAMBO) || MB(EINSY_RAMBO) || MB(EINSY_RETRO)
修改成如下内容
     #elif MB(MINIRAMBO) || MB(EINSY_RAMBO) || MB(EINSY_RETRO)|| MB(RAMPS_14_EFB)
它的作用就是让下面的三行延时代码被执行,延时时间不用改。
3、完整的代码发出来,供大家参考
     #elif MB(MINIRAMBO) || MB(EINSY_RAMBO) || MB(EINSY_RETRO)|| MB(RAMPS_14_EFB)
     #define CPU_ST7920_DELAY_1 DELAY_NS(0)
     #define CPU_ST7920_DELAY_2 DELAY_NS(250)
     #define CPU_ST7920_DELAY_3 DELAY_NS(0)

最后放一张刷新固件后正常的图


------------华丽丽的分割线-------------------------------------------------------------------------------------------
2020-5-5
今天再次测试了@水表君的方法,又能编译通过了。应该是我之前代码没有抄对:funk:
这里一并写出来,给大家多一个解决方案
在congfigaration.h关于LCD配置的段落里(可说搜索关键字:#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER),增加三行代码
    #define ST7920_DELAY_1 DELAY_NS(0)                    
    #define ST7920_DELAY_2 DELAY_NS(200)        //花屏情况改变这个数值,每次增大50,我看到有大神用到400才解决问题
    #define ST7920_DELAY_3 DELAY_NS(0)                        

完整的代码我这里放出来

---------------------------------------------------------------------------
总结:
1、修改ultralcd_st7920_u8glib_rrd.h文件和修改connfigaration.h文件,两个方法都能解决问题,但考虑到marlin固件配置一般都是只更改第二个文件。为了后面方便,推荐修改第二个文件,也就是水表君的方案。

2、遇到问题,中文网站找不到的,就去外文网站上找找,往往都有收获。



本帖子中包含更多资源

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

x

打赏

参与人数 1家元 +20 收起 理由
cushion + 20 原創內容

查看全部打赏

本帖被以下淘专辑推荐:

发表于 2020-5-2 13:32:07 | 显示全部楼层
基本这个固件使用都会花屏,因为国内生产制作的屏幕模块有问题,需要修改固件延时。我也是从一个不起眼的视频里看见的,我是直接添加那三条延时就可以完美解决。这个延时不会产生副作用,这个延时只涉及到和屏幕通讯协议时序的延时。能解决就好。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-5-2 16:58:41 来自手机浏览器 | 显示全部楼层
我在configuration.h里面,直接加这三条延时代码,编译时会报错,所以才想到了这个招数。
回复 支持 反对

使用道具 举报

发表于 2020-5-2 17:25:56 来自手机浏览器 | 显示全部楼层
謝謝樓主分享,五一快樂
回复 支持 反对

使用道具 举报

发表于 2020-5-3 17:19:48 | 显示全部楼层
dgpower 发表于 2020-5-2 16:58
我在configuration.h里面,直接加这三条延时代码,编译时会报错,所以才想到了这个招数。 ...

在你之前哪个帖子,我说的加那三条语句我编译没问题,用Arduino1.8.10编译的。
回复 支持 反对

使用道具 举报

发表于 2020-6-14 19:42:00 | 显示全部楼层
楼主我想请教一个问题。
我自己弄了一个三角洲打印机,固件都改完了。脱机屏幕手头只有LCD2004,
现在的问题是只要固件开启LCD2004编译的时候就出错。
固件定义换成LCD12864就编译成功。
这是怎么回事啊???
求大神解惑。谢谢
回复 支持 反对

使用道具 举报

发表于 2021-9-13 01:20:03 | 显示全部楼层
很给力!  正准备入坑  

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-3 22:56:40 | 显示全部楼层
wuxianbest 发表于 2020-6-14 19:42
楼主我想请教一个问题。
我自己弄了一个三角洲打印机,固件都改完了。脱机屏幕手头只有LCD2004,
现在的问 ...

应该是你漏了一个地方没有改
#define REPRAP_DISCOUNT_SMART_CONTROLLER

小白一般不建议第一次就折腾三角洲,会把人搞晕的。


回复 支持 反对

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-26 08:30 , Processed in 0.124800 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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