连接OLED 128x64 LCD;打补丁时缺少 dogm_lcd_implementation.h

3D打印 马林鱼 DIY-3d-打印机 固件 全图形智能控制器
2021-05-07 04:33:19

我正在尝试为我的 DIY 3D 打印机安装 MKS 12864 0.96 OLED(请参阅其他问题)。

这不是在马林的LCD部分中列出configuration.h,并根据一些指点,我需要做一些修改一个文件名为dogm_lcd_implementation.h缺少在马林1.1.9!

它在哪里?如何安装 LCD 模块?

1个回答

问题历史

一个问题答案讨论了在 Marlin 打印机固件中安装 LCD 模块的补丁。请注意,这些补丁非常旧(大约 2015 年)。从那时起,许多事情都发生了变化(正如那里所承认的那样)。答案不适用于最新版本的 Marlin 源代码!

回答

是的,您dogm_lcd_implementation.h对 Marlin 1.1.9 版本中缺少文件的观察是正确的。但是,我相信它不会丢失,所有代码和进一步的开发都可以在ultralcd_impl_DOGM.h. 有一些旧版本的文件在互联网上想知道,例如这里来自这个旧的 Marlin 克隆存储库

我相信你的第二个补丁:

/*--------------MKS OLED 贴片_2---------------*/
#elif 定义(U8GLIB_SSD1306)
U8GLIB_SSD1306_128X64 u8g(23, 17, 16, 25); // SW SPI Com:SCK = 23,MOSI = 17,CS = 16,A0 = 25
/*--------------MKS OLED 贴片_2---------------*/

应该放在ultralcd_impl_DOGM.h下面:

#elif 启用(迷你面板)
  // MINIPanel 显示
  //U8GLIB_MINI12864 u8g(DOGLCD_CS, DOGLCD_A0); // 8 条
  U8GLIB_MINI12864_2X u8g(DOGLCD_CS, DOGLCD_A0); // 4条

之前:

#别的
  // 用于带有 HW-SPI 的常规 DOGM128 显示
  //U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0 // 8 条
  U8GLIB_DOGM128_2X u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0 // 4 条
#万一

去创造:

#elif 启用(迷你面板)
  // MINIPanel 显示
  //U8GLIB_MINI12864 u8g(DOGLCD_CS, DOGLCD_A0); // 8 条
  U8GLIB_MINI12864_2X u8g(DOGLCD_CS, DOGLCD_A0); // 4条
#elif 启用(U8GLIB_SSD1306)
  // SW SPI Com:SCK = 23,MOSI = 17,CS = 16,A0 = 25
  U8GLIB_SSD1306_128X64 u8g(23, 17, 16, 25); 
#别的
  // 用于带有 HW-SPI 的常规 DOGM128 显示
  //U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0 // 8 条
  U8GLIB_DOGM128_2X u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0 // 4 条
#万一

请注意,已经存在一个条目U8GLIB_SSD1306这必须删除,否则您需要将代码放在该部分(取消注释现有代码)!

例如

#elif 启用(U8GLIB_SSD1306)
  // 对 SSD1306 OLED I2C LCD 的通用支持
  //U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST); // 8 条
  U8GLIB_SSD1306_128X64_2X u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST); // 4条

可以改为:

#elif 启用(U8GLIB_SSD1306)
  // 对 SSD1306 OLED I2C LCD 的通用支持
  //U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST); // 8 条
  //U8GLIB_SSD1306_128X64_2X u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST); // 4条
  // SW SPI Com:SCK = 23,MOSI = 17,CS = 16,A0 = 25
  U8GLIB_SSD1306_128X64 u8g(23, 17, 16, 25);