MakerLab创客实验室 — Let's Make something.
现在注册
已注册用户请 登入

Mini Panel真正开启中文汉字支持u8glib Marlin

3D打印机上用的LCD控制器都是英文的菜单,给新手带来了障碍,MakerLab现已开发支持中文的Marlin版本
Mini Panel简介48 U8glib如何显示中文74 U8glib如何定制字体8 Marlin中文版LCD界面25 如何使用Marlin中文版19 Marlin LCD菜单的功能11 bdf字体文档下载1
Andy large avatar
MakerLab创客实验室  ›  学习系统  ›  3d 打印  ›  Mini Panel真正开启中文汉字支持u8glib Marlin

Mini Panel简介

By Andy at 2 年前 , 10077 次浏览

中文版固件已开源

下载地址:中文固件Github地址
直接打包下载:https://github.com/MakerLabMe/Marlin/archive/add_chinese_font.zip

kossel、delta、并联版本下载:中文固件Github地址
kossel、delta、并联版本打包下载:https://github.com/MakerLabMe/Marlin_delta/archive/makerlab.zip

繁體版本下載:
https://github.com/MakerLabMe/Marlin/tree/add_traditional_chinese
打包下載:
https://github.com/MakerLabMe/Marlin/archive/add_traditional_chinese.zip

刚刚发布,如果发现有问题,请提出您的意见和想法,也欢迎有兴趣的朋友贡献代码。

如果你还没有自己的LCD,可以考虑MakerLab设计的Mini Panel,http://item.taobao.com/item.htm?id=21364183191 .

Mini Panel 基本参数

Mini Panel是为Mega Controller设计的脱机打印拓展板。可以通过拓展板上自带的SD卡(Micro)读卡器读取SD卡上的Gcode文件,从而实现脱机打印(无需连接usb线)。特点如下:

1、LCD像素为128*64,具有显示中文和图形潜力,中文版本固件已发布;
2、采用Mini LCD,传统LCD控制器,笨重难看,Mini Panel的尺寸为67*48mm;
3、原装ALPS编码开关,使用寿命更长,操作更顺畅;
4、Micro SD卡槽,Micro SD卡在智能手机上非常常用,所以我们选择了Micro SD卡作为存储Gcode的媒介;
5、引出RESET(复位,这里是真正的复位按钮,而不是停止及Kill按钮)按钮,主控板一般都不容易让人接触,按主控板上的复位按钮就有点难度了,所以我们引出了复位按钮,再也不用为了复位而弄乱导线或关掉电源重新启动了,不过这个功能只适用于Mega Contrller,如果用于Ramps1.4板子,复位按钮不起作用(因为Ramps复位没有引出);
6、单根排线与主控板(Mega Controller或Ramps)连接,避免了多根数据线连接错误而烧板子的风险;
7、支持中文



本文最后更新于:10 天前
48 回复
Andy medium avatar
#1 - 2 年前
Andy

繁体版本,有图有真相:

Andy medium avatar
#2 - 2 年前
Andy

目前繁体和简体之间不能直接切换,也就是说如果想同时体验繁体和简体版本,需要两个都下载,分别进行测试,如果切换,整个代码都需要切换。后面的版本可能会增加切换的选择。

xuximeng medium avatar
#4 - 2 年前
xuximeng

搞明白后,我来做个日文的菜单好了

xuximeng medium avatar
#6 - 2 年前
xuximeng

@Andy 搞定,不过问题随之而来,麻烦大大有时间为我解惑啊!1,我使用fireflyR11.bdf字库来生成字体数据发现和您在MARLIN中字体数据的第一行是不同的。不知道是不是字库版本不同的原因造成的。 2,我看您的教程说字体数据第一行有指定码的起始和终止位置“”161~165结束的“”。担看您的字表是127开始 -213结束的,但是MARLIN中是32开始到255结束。所以MARLIN数据中是不是还包含了其它的字体数据。(不知道127这个开始是如何体现在字体数据里的)3,关于字体数据合并,我生成的字体数据似乎没有最后的一呀! 这是我生成的字体数据:

const u8g_fntpgm_uint8_t chinese_test[43] U8G_FONT_SECTION("chinese_test") = {
0,11,11,0,255,0,0,0,0,0,27,27,0,9,255,0,
0,10,10,20,11,0,255,48,64,72,64,133,64,121,64,73,
64,73,64,89,64,64,64,68,64,61,192};

编程自学了两年,各种请教一路走来。还望百忙之中解答呀!

xuximeng medium avatar
#7 - 2 年前
xuximeng

我用的WIN7系统 生成的命令是:bdf2u8g_101.exe -b 162 -e 162 -u 183 fireflyR11.bdf chinese_ke chinese_ke.c 是不是因为firefly字库的问题? 还是BDF2U8G版本不同?

Andy medium avatar
#8 - 2 年前
Andy

@xuximeng 嗯,自学精神值得鼓励,坚持下去。

你的问题

marlin提供的一个字体数据:

const u8g_fntpgm_uint8_t u8g_font_6x9[2300] U8G_SECTION(".progmem.u8g_font_6x9") = {
0,6,9,0,254,6,1,137,2,254,32,255,254,7,254,6,
254,0,0,0,6,0,7,1,6,6,6,2,0,128,128,128,
...
};

可以看到,它的编码是32~255之间的,但是并不意味着所有的字符都有有效的内容;

下面是我的字体:

const u8g_fntpgm_uint8_t chinese[3819] U8G_SECTION(".progmem.chinese") = {
0,11,11,0,255,9,1,207,3,158,32,255,255,10,255,9,
255,0,0,0,6,0,1,1,9,9,6,2,0,128,128,128,
...
};

我的字体编码范围也是32~255.你看到我生成的字体应该是我用来测试的。正式版本的字体数据请参考固件中dogm_font_data_marlin.h文件中的代码。第三个问题不太明白什么意思。

生成的数据你实际显示一下,看看是不是想要的字。

xuximeng medium avatar
#9 - 2 年前
xuximeng

感谢! 第三个问题是这个:132,32,132,31,148,0,/*8,每个单独生产的数据,最后一位貌似有特殊用途,如果合并,需要将这一位删除,否则后面的字都无法显示 */

您自己定义的字是从中文是从127(十进制)开始的, 数据 是从32-255的。那么从32到127之间是什么数据?那到是空白的?我是小白哦!因为看到您对于【 创客实验室】五个字的实验来说字体数据应该是顺序排放的啊。 感谢

Andy medium avatar
#10 - 2 年前
Andy

@xuximeng 32~127是可视标准的ASCII范围,就是数字,字母以及一些常见符号等。127以后的一般来说都是不可显示的字符,所以可以把这部分填充为中文。

【 创客实验室】这五个字的编码范围不是32~255,32~255是我的marlin固件中的所有字体文件范围。不要跟例子中的搞混了

涛涛 medium avatar
#11 - 2 年前
涛涛

@Andy

32~127是可视标准的ASCII范围,就是数字,字母以及一些常见符号等。127以后的一般来说都是不可显示的字符,所以可以把这部分填充为中文。

【 创客实验室】这五个字的编码范围不是32~255,32~255是我的marlin固件中的所有字体文件范围。不要跟例子中的搞混了。

问题:请问如果需要再增加汉字“中国”,那么是不是需要在你的字体后面(255)增加?
1、如果是,那就是在256\257就可以增加“中”和“国”汉字,但是ASCII只有255个长度吗?
2、如果不是,那么就是说不能额外增加字体了,是吗?

涛涛 medium avatar
#13 - 2 年前
涛涛

@Andy
我尝试着找到这些没有使用的空字符,但是遇到的一个问题是,32~127是一个很困难的找寻范围,导致我没有继续找寻的原因是:32~127在某些位置是有特殊字符的,我显示出这些字符了,但是我不清楚怎么找到对应的unicode或者acsii编码。
请教下有没有更加简便的方式?

Andy medium avatar
#14 - 2 年前
Andy

@涛涛 是的,让我找我也找不到。有个方法,就是自己制作bdf文档,并且bdf中只包含自己想要的字符,并且按照相应的方式重新编码(尤其是像中文这样不在标准ASCII码范围以内的)。思路就是这样的。操作起来比合并不知道什么意义的数字要好一些。

涛涛 medium avatar
#15 - 2 年前
涛涛

@Andy
感谢回复!
我刚想了下,你能否把32~127这个ascii编码或者整个bdf文档,发给我下?因为你制作bdf文档时,应该是有把这些字符包含在内的。

qiuguangcai medium avatar
#17 - 2 年前
qiuguangcai

我把程序下载之后拷到板子上,刚开始显示乱码。之后重新考程序液晶又不显示了。碰到过类似的情况么?必须在液晶模块后面加上SD卡么?

jinghua medium avatar
#18 - 2 年前
jinghua

用合体版+MINIPANEL,总是卡顿,ST卡都试了好多,用的是你的reprap的固件来装的REPRAP机,也有地方像DETAL机子样的改设置来解决吗?急,看了后面的才有的疑问=》由于delta打印机固件需要做很多坐标转换的运算,所以如果打开12864的LCD功能,可能会造成卡顿的现象,可以调节下面参数来修正和缓解这种问题:

#define DELTA_SEGMENTS_PER_SECOND 160 //减小这个数值,来缓解卡顿现象,如修改为120进行测试。》

alidetuou medium avatar
#19 - 2 年前
alidetuou

上边给的固件 下载那个有什么用

莫离 medium avatar
#20 - 2 年前
莫离

按上面提供的固件上传不了,错误提示为“没有添加U8G库函数”,求指教。

Andy medium avatar
#21 - 2 年前
Andy

@莫离
下载后解压后,marlin文件夹里的所有文件就是固件的源代码,找到里面的pde或ino文件用IDE软件打开即可。

ArduinoAddons->Arduino_1.x.x->libraries下面的U8glib目录需要拷贝到你的IDE目录->libraries下(或我的文档->Arduino->libraries),这样在使用Mini Panel时不会出错。


将上图中的u8glib文件夹,拷贝到下图Arduino IDE文件夹中的Libraries文件夹中

yangkkokk medium avatar
#22 - 2 年前
yangkkokk

既然可以支持SD卡那么,为什么不能把字库文件放在SD卡里,像读取EEPROM里的字库一样,迅速的显示汉字,要不你们最多就是使用了这个U8G包,并没有什么改善,前年我就用这个做飞控界面了,一直找不到好的BLOG代码,我有个很好的域名,你们是成大的还是工专的,如果你们突破这一点会名声大造的,技术难点就在于修改U8GLIB的读取库的方法,期待改进。

yangkkokk medium avatar
#23 - 2 年前
yangkkokk

原来只支持st7920啊,还得自己写代码才能支持ks108,请注明,只支持一款芯片的lcd,不过怎么说你们翻译了字体使用方法,当时我自己捣鼓了3个月,如果有这个几天就弄好了

alidetuou medium avatar
#24 - 2 年前
alidetuou

上边给的能下载的连接下载下来的东西做什么用的?

Andy medium avatar
#25 - 2 年前
Andy

@alidetuou 哪里?固件?固件是控制打印机的软件

aa08001 medium avatar
#27 - 2 年前
aa08001

我下載繁體固件,編程時出現這個錯誤:Arduino: 1.5.8 (Windows XP), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

qr_solve.cpp:7:18: fatal error: time.h: No such file or directory
#include
^
compilation terminated.
Error compiling.

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
請問如何處理?

Andy medium avatar
#28 - 2 年前
Andy

@aa08001 1.5.8版本的IDE我没试过,你试试1.5.6版本的IDE,可不可以

aa08001 medium avatar
#29 - 2 年前
aa08001

@Andy Arduino 1.5.6-r2 BETA可用,謝謝

yydyydyyd medium avatar
#30 - 2 年前
yydyydyyd

@Andy请问我为什么导入固件时告诉我 'u8g_fntpgm_uint8_t'does not name a type
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows XP), Board: "Arduino Mega 2560 or Mega ADK"
In file included from /dogm_lcd_implementation.h:38,
from ultralcd.cpp:36:
dogm_font_data_marlin.h:13: error: 'u8g_fntpgm_uint8_t' does not name a type
dogm_font_data_marlin.h:172: error: 'u8g_fntpgm_uint8_t' does not name a type
dogm_font_data_marlin.h:356: error: 'u8g_fntpgm_uint8_t' does not name a type
In file included from ultralcd.cpp:36:
dogm_lcd_implementation.h:95: error: 'U8GLIB_MINI12864' does not name a type
/dogm_lcd_implementation.h: In function 'void lcd_implementation_init()':
dogm_lcd_implementation.h:115: error: 'u8g' was not declared in this scope
dogm_lcd_implementation.h:117: error: 'u8g_font_6x10_marlin' was not declared in this scope
dogm_lcd_implementation.h:141: error: 'u8g_font_6x10_marlin' was not declared in this scope
dogm_lcd_implementation.h:143: error: 'u8g_font_5x8' was not declared in this scope
dogm_lcd_implementation.h:148: error: 'chinese' was not declared in this scope
/dogm_lcd_implementation.h: In function 'void lcd_printPGM(const char*)':
dogm_lcd_implementation.h:185: error: 'u8g' was not declared in this scope
/dogm_lcd_implementation.h: In function 'void lcd_implementation_status_screen()':
dogm_lcd_implementation.h:195: error: 'u8g' was not declared in this scope
dogm_lcd_implementation.h:211: error: 'u8g_font_6x9' was not declared in this scope
dogm_lcd_implementation.h:345: error: 'u8g_font_6x10_marlin' was not declared in this scope
dogm_lcd_implementation.h:355: error: 'chinese' was not declared in this scope
/dogm_lcd_implementation.h: In function 'void lcd_implementation_drawmenu_generic(uint8_t, const char*, char, char)':
dogm_lcd_implementation.h:373: error: 'u8g' was not declared in this scope
dogm_lcd_implementation.h:380: error: 'u8g' was not declared in this scope
dogm_lcd_implementation.h:382: error: 'u8g' was not declared in this scope
/dogm_lcd_implementation.h: In function 'void lcd_implementation_drawmenu_setting_edit_generic(uint8_t, const char*, char, char*)':
dogm_lcd_implementation.h:407: error: 'u8g' was not declared in this scope
/dogm_lcd_implementation.h: In function 'void lcd_implementation_drawmenu_setting_edit_generic_P(uint8_t, const char*, char, const char*)':
dogm_lcd_implementation.h:432: error: 'u8g' was not declared in this scope
/dogm_lcd_implementation.h: In function 'void lcd_implementation_drawedit(const char*, char*)':
dogm_lcd_implementation.h:489: error: 'u8g' was not declared in this scope
dogm_lcd_implementation.h:491: error: 'chinese' was not declared in this scope
/dogm_lcd_implementation.h: In function 'void lcd_implementation_drawmenu_sdfile_selected(uint8_t, const char*, const char*, char*)':
dogm_lcd_implementation.h:515: error: 'u8g' was not declared in this scope
/dogm_lcd_implementation.h: In function 'void lcd_implementation_drawmenu_sdfile(uint8_t, const char*, const char*, char*)':
dogm_lcd_implementation.h:544: error: 'u8g' was not declared in this scope
/dogm_lcd_implementation.h: In function 'void lcd_implementation_drawmenu_sddirectory_selected(uint8_t, const char*, const char*, char*)':
dogm_lcd_implementation.h:570: error: 'u8g' was not declared in this scope
/dogm_lcd_implementation.h: In function 'void lcd_implementation_drawmenu_sddirectory(uint8_t, const char*, const char*, char*)':
dogm_lcd_implementation.h:601: error: 'u8g' was not declared in this scope
ultralcd.cpp: In function 'void lcd_update()':
ultralcd.cpp:1118: error: 'u8g' was not declared in this scope
ultralcd.cpp:1122: error: 'chinese' was not declared in this scope

tianjianwudi medium avatar
#34 - 2 年前
tianjianwudi

你好,我用的2004LCD,下载的是你的固件,根据我的LCD我想显示英文的,因此关闭了//#define MINIPANEL,并打开#define REPRAP_DISCOUNT_SMART_CONTROLLER,下载固件后主页面正常显示了英文菜单,但是进入菜单后是类似日语的字体和黑方块。这种情况是不是固件本身是为中文编辑的,而我用来显示英文有些参数还需修改?

Andy medium avatar
#35 - 2 年前
Andy

@tianjianwudi language.h文件中,把语言配置中的10改为1就可以了。

小羊 medium avatar
#37 - 2 年前
小羊

@Andy 大神!!u8glib 提供的工具是那一个啊!找不到

小羊 medium avatar
#38 - 2 年前
小羊

@xuximeng bdf2u8g_101.exe -b 162 -e 162 -u 183 fireflyR11.bdf chinese_ke chinese_ke.c这条指令输入在哪里啊?是打开BDF2U8G这里吗?

纵普 medium avatar
#39 - 一年前
纵普

请问在哪里下载

纵普 medium avatar
#40 - 一年前
纵普

请问在哪里下载MakerLab

东方客 medium avatar
#43 - 9 个月前
东方客

Marlin.ino:44:101: fatal error: U8glib.h: No such file or directory
compilation terminated.
编译有误。
想请教这是什么问题。

cain medium avatar
#44 - 8 个月前
cain

@Andy 12864进入菜单按键,按完只快闪一下主选单页面,就跳回信息界面,有时候就能按出来主选单界面,不过很不容易按

sanse medium avatar
#45 - 8 个月前
sanse

@Andy 我刚在淘宝上买了一台清心电子3D打印的corexy机器,他们用的是你们的板子吧!我能直接将你们这个固件烧到板子上么!

cexocqwgu medium avatar
#46 - 8 个月前
cexocqwgu

@Andy 您好! 我想在12864上显示的汉字您那个表上没有,我想从fireflyR11.bdf里面提取汉字重新做一个bdf。我想问下您是用什么软件编辑的呢?然后怎么重新编码?能教下我吗?谢谢!

reeve2010 medium avatar
#47 - 10 天前
reeve2010

@andy 显示中文的固件可以用再12864屏上么,我载入之后蜂鸣器一直在响

reeve2010 medium avatar
#48 - 10 天前
reeve2010

Arduino:1.5.6-r2 (Windows 7), 板:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

In file included from /dogm_lcd_implementation.h:40,
from ultralcd.cpp:36:
/ultralcd_st7920_u8glib_rrd.h: In function 'void ST7920_SWSPI_SND_8BIT(uint8_t)':
ultralcd_st7920_u8glib_rrd.h:29: error: 'DIOLCD_PINS_D4_RPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:29: error: 'DIOLCD_PINS_D4_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:29: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:29: error: 'DIOLCD_PINS_D4_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:29: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:29: error: 'DIOLCD_PINS_D4_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:29: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:29: error: 'DIOLCD_PINS_D4_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:29: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:30: error: 'DIOLCD_PINS_ENABLE_RPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:30: error: 'DIOLCD_PINS_ENABLE_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:30: error: 'DIOLCD_PINS_ENABLE_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:30: error: 'DIOLCD_PINS_ENABLE_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:30: error: 'DIOLCD_PINS_ENABLE_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:30: error: 'DIOLCD_PINS_ENABLE_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:30: error: 'DIOLCD_PINS_ENABLE_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:30: error: 'DIOLCD_PINS_ENABLE_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:30: error: 'DIOLCD_PINS_ENABLE_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:32: error: 'DIOLCD_PINS_D4_RPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:32: error: 'DIOLCD_PINS_D4_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:32: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:32: error: 'DIOLCD_PINS_D4_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:32: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:32: error: 'DIOLCD_PINS_D4_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:32: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:32: error: 'DIOLCD_PINS_D4_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:32: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
/ultralcd_st7920_u8glib_rrd.h: In function 'uint8_t u8g_dev_rrd_st7920_128x64_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)':
ultralcd_st7920_u8glib_rrd.h:50: error: 'DIOLCD_PINS_RS_DDR' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:50: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:51: error: 'DIOLCD_PINS_RS_RPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:51: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:51: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:51: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:51: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:51: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:51: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:51: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:51: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:52: error: 'DIOLCD_PINS_ENABLE_DDR' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:52: error: 'DIOLCD_PINS_ENABLE_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:53: error: 'DIOLCD_PINS_ENABLE_RPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:53: error: 'DIOLCD_PINS_ENABLE_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:53: error: 'DIOLCD_PINS_ENABLE_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:53: error: 'DIOLCD_PINS_ENABLE_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:53: error: 'DIOLCD_PINS_ENABLE_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:53: error: 'DIOLCD_PINS_ENABLE_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:53: error: 'DIOLCD_PINS_ENABLE_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:53: error: 'DIOLCD_PINS_ENABLE_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:53: error: 'DIOLCD_PINS_ENABLE_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:54: error: 'DIOLCD_PINS_D4_DDR' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:54: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:55: error: 'DIOLCD_PINS_D4_RPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:55: error: 'DIOLCD_PINS_D4_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:55: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:55: error: 'DIOLCD_PINS_D4_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:55: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:55: error: 'DIOLCD_PINS_D4_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:55: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:55: error: 'DIOLCD_PINS_D4_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:55: error: 'DIOLCD_PINS_D4_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:57: error: 'DIOLCD_PINS_RS_RPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:57: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:57: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:57: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:57: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:57: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:57: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:57: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:57: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:74: error: 'DIOLCD_PINS_RS_RPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:74: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:74: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:74: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:74: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:74: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:74: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:74: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:74: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:87: error: 'DIOLCD_PINS_RS_RPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:87: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:87: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:87: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:87: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:87: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:87: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:87: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:87: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:106: error: 'DIOLCD_PINS_RS_RPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:106: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:106: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:106: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:106: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:106: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:106: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:106: error: 'DIOLCD_PINS_RS_WPORT' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:106: error: 'DIOLCD_PINS_RS_PIN' was not declared in this scope
In file included from ultralcd.cpp:36:
/dogm_lcd_implementation.h: In function 'void lcd_implementation_quick_feedback()':
dogm_lcd_implementation.h:635: error: 'DIOBEEPER_DDR' was not declared in this scope
dogm_lcd_implementation.h:635: error: 'DIOBEEPER_PIN' was not declared in this scope
dogm_lcd_implementation.h:638: error: 'DIOBEEPER_RPORT' was not declared in this scope
dogm_lcd_implementation.h:638: error: 'DIOBEEPER_WPORT' was not declared in this scope
dogm_lcd_implementation.h:638: error: 'DIOBEEPER_PIN' was not declared in this scope
dogm_lcd_implementation.h:638: error: 'DIOBEEPER_WPORT' was not declared in this scope
dogm_lcd_implementation.h:638: error: 'DIOBEEPER_PIN' was not declared in this scope
dogm_lcd_implementation.h:638: error: 'DIOBEEPER_WPORT' was not declared in this scope
dogm_lcd_implementation.h:638: error: 'DIOBEEPER_PIN' was not declared in this scope
dogm_lcd_implementation.h:638: error: 'DIOBEEPER_WPORT' was not declared in this scope
dogm_lcd_implementation.h:638: error: 'DIOBEEPER_PIN' was not declared in this scope
dogm_lcd_implementation.h:640: error: 'DIOBEEPER_RPORT' was not declared in this scope
dogm_lcd_implementation.h:640: error: 'DIOBEEPER_WPORT' was not declared in this scope
dogm_lcd_implementation.h:640: error: 'DIOBEEPER_PIN' was not declared in this scope
dogm_lcd_implementation.h:640: error: 'DIOBEEPER_WPORT' was not declared in this scope
dogm_lcd_implementation.h:640: error: 'DIOBEEPER_PIN' was not declared in this scope
dogm_lcd_implementation.h:640: error: 'DIOBEEPER_WPORT' was not declared in this scope
dogm_lcd_implementation.h:640: error: 'DIOBEEPER_PIN' was not declared in this scope
dogm_lcd_implementation.h:640: error: 'DIOBEEPER_WPORT' was not declared in this scope
dogm_lcd_implementation.h:640: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd.cpp: In function 'void lcd_init()':
ultralcd.cpp:997: error: 'BTN_EN1' was not declared in this scope
ultralcd.cpp:998: error: 'BTN_EN2' was not declared in this scope
ultralcd.cpp:999: error: 'DIOBTN_EN1_RPORT' was not declared in this scope
ultralcd.cpp:999: error: 'DIOBTN_EN1_WPORT' was not declared in this scope
ultralcd.cpp:999: error: 'DIOBTN_EN1_PIN' was not declared in this scope
ultralcd.cpp:999: error: 'DIOBTN_EN1_WPORT' was not declared in this scope
ultralcd.cpp:999: error: 'DIOBTN_EN1_PIN' was not declared in this scope
ultralcd.cpp:999: error: 'DIOBTN_EN1_WPORT' was not declared in this scope
ultralcd.cpp:999: error: 'DIOBTN_EN1_PIN' was not declared in this scope
ultralcd.cpp:999: error: 'DIOBTN_EN1_WPORT' was not declared in this scope
ultralcd.cpp:999: error: 'DIOBTN_EN1_PIN' was not declared in this scope
ultralcd.cpp:1000: error: 'DIOBTN_EN2_RPORT' was not declared in this scope
ultralcd.cpp:1000: error: 'DIOBTN_EN2_WPORT' was not declared in this scope
ultralcd.cpp:1000: error: 'DIOBTN_EN2_PIN' was not declared in this scope
ultralcd.cpp:1000: error: 'DIOBTN_EN2_WPORT' was not declared in this scope
ultralcd.cpp:1000: error: 'DIOBTN_EN2_PIN' was not declared in this scope
ultralcd.cpp:1000: error: 'DIOBTN_EN2_WPORT' was not declared in this scope
ultralcd.cpp:1000: error: 'DIOBTN_EN2_PIN' was not declared in this scope
ultralcd.cpp:1000: error: 'DIOBTN_EN2_WPORT' was not declared in this scope
ultralcd.cpp:1000: error: 'DIOBTN_EN2_PIN' was not declared in this scope
ultralcd.cpp: In function 'void lcd_buttons_update()':
ultralcd.cpp:1195: error: 'DIOBTN_EN1_RPORT' was not declared in this scope
ultralcd.cpp:1195: error: 'DIOBTN_EN1_PIN' was not declared in this scope
ultralcd.cpp:1196: error: 'DIOBTN_EN2_RPORT' was not declared in this scope
ultralcd.cpp:1196: error: 'DIOBTN_EN2_PIN' was not declared in this scope

报告将会包含更多的信息
"Show verbose output during compilation"
在 文件>首选项 中启用