YFROBOT创客社区

标题: Arduino入门教程—拓展实验篇十一 驱动12864液晶 [打印本页]

作者: AllBlue    时间: 2013-8-30 10:10
标题: Arduino入门教程—拓展实验篇十一 驱动12864液晶
本帖最后由 AllBlue 于 2016-9-30 13:43 编辑

驱动12864液晶

12864是128*64点阵液晶模块的点阵数简称,业界约定俗成的简称。主要控制芯片一般为ST7920或与之兼容的IC。

大家在网上搜索12864时,总会发现带不带字库,它们的分别:带字库版不需要用点阵生成器把汉字变成点阵后再输入,直接输入汉字内码即可显示出对应汉字,无字库版想要显示汉字,只能自己按照点阵方式驱动。

硬件特性:

提供 8 位,4 位并行接口及串行接口可选

并行接口适配 M6800 时序 自动电源启动复位功能

内部自建振荡源

64×16 位字符显示 RAM(DDRAM 最多 16 字符×4 行,LCD 显示范围 16×2 行)

2M 位中文字型 ROM(CGROM),总共提供 8192 个中文字型(16×16 点阵)

16K 位半宽字型 ROM(HCGROM),总共提供 126 个西文字型(16×8 点阵)

64×16 位字符产生 RAM(CGRAM)

引脚功能图:
[attach]503[/attach]
详细资料可以下载下面的12864手册;
12864液晶手册:

[attach]496[/attach]


下图就是12864液晶的实物图了:
[attach]502[/attach]、
上面说过12864的连接方法: 8 位,4 位并行接口及串行接口可选 。串行接法
电路示意图如下:
[attach]501[/attach]
实物连接图如下:
[attach]527[/attach]

12864库文件:

[attach]499[/attach]


例程:
[C] 纯文本查看 复制代码
/*
  Arduino驱动LCD12864显示
  BY YFRobot
*/

#include "LCD12864RSPI.h"
#define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )
unsigned char show0[]="YFROBOT"; //YFROBOT
unsigned char show1[]= { 0xB9, 0xA4, 0xD7, 0xF7, 0xCA, 0xD2 };   //工作室
unsigned char show2[]="Touch You Future"; //Touch You Future
unsigned char logo[] =                  // 扬帆Logo
{
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
      0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
      0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
      0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,
      0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,
      0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,
      0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,
      0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,
      0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,
      0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE0,
      0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xE0,
      0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,
      0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,
      0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,
      0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,
      0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,
      0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,
      0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,
      0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,
      0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,
      0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,
      0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,
      0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,
      0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,
      0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,
      0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x01,
      0xC0,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x01,
      0xC1,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x01,
      0xC7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x01,
      0xBC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x04,
      0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x1C,
      0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x7C,
      0x14,0xCE,0xEE,0x6F,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,
      0x15,0x4A,0xA8,0xA5,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x0F,
      0x09,0x4A,0xEE,0xA5,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x0C,
      0x08,0xEA,0x28,0x75,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,
      0x08,0x00,0xE8,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x20,
      0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,
      0x0F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,
      0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,
      0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,
      0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

void setup(){
  LCDA.Initialise(); // 屏幕初始化
  delay(100);
}
void LOGO(){  
  LCDA.CLEAR();//清屏
  delay(100);
  LCDA.DrawFullScreen(logo); //全屏显示logo
}
void NAME(){
  LCDA.CLEAR();//清屏
  delay(100);
  LCDA.DisplayString(0,0,show0,AR_SIZE(show0));//第一行第一格开始,显示"YFROBOT"
  delay(100);
  LCDA.DisplayString(0,4,show1,AR_SIZE(show1));//第一行第五个字开始,显示文字"工作室"
  delay(100);
  LCDA.DisplayString(2,0,show2,AR_SIZE(show2));//第三行第一格开始,显示"Touch You Future"
}

void loop(){  
  LOGO();
  delay(3000);
  NAME();
  delay(3000);
}


显示效果:
[attach]528[/attach]
[attach]529[/attach]

还有并行接法,由于篇幅太大,我们下次贴给大家介绍!



上面的效果图如何获得的呢?

首先英文字母不需要麻烦,直接输出就可以;然后介绍下如何获取汉字内码,我们打开汉字内码获取工具(由ardyPro所写,很好用;本帖也有下载链接),然后输入想要显示的汉字,例如:“工作室”;点击转换,转换结果就会出现内码了,如下图,其中“0xB9, 0xA4,”就是“共”字的内码,将其复制到程序中就可以使用了~~

汉字一个字占两个字符,相当于两个英文字母的大小,所以我们程序中LCDA.DisplayString(0,4,show1,AR_SIZE(show1));//第一行第五个字开始,显示文字"工作室" 的语句是从第五个字开始显示,因为“YFROBOT”占用了7个字符,就相当于占用了4个汉字的位置!


[attach]506[/attach]

下面我来介绍下图片是如何获取的,你需要个图片取模工具(本帖最后有下载链接),打开它,然后找到你想要显示的图片,这里我就以上面程序中的图片为例了!
图片如下:

[attach]507[/attach]
然后我们通过PS软件打开它;再在PS中新建一个128*64的空白图片:
[attach]508[/attach]

然后我们将我们的图片经过一些处理:将其尺寸改小,能拖到128*64的空白图片中就可以,我们原图的尺寸为1181*1181,所以我将其改为64*64,这样肯定可以拖到128*64图片中,用户在使用其他尺寸图片时原理一样的,如果你想要显示的大点,那你就让图片的边缘接近128*64的大小就可以了!我们看下我们改好的图片(下图中已经将原图改小并且已经将其拖入128*64空白图片中,图中能看到的就是128*64图片的现状):

[attach]509[/attach]
现在来说原图已经没什么作用了,可以将其关闭,它的大小有改动,关闭是可以还原它的大小选择不更改图片就可以;
下面我们要做的就是讲图片改成取模工具能够识别的图片就可以了,但要经过几个步骤;

第一步:去色(如果原图是黑白的更好就不需要这个步骤了)

第二步:调节对比度(为了更清楚的显示)

第三步:调节图片模式(从原来的RGB颜色改为位图,其中可能不能直接改为位图,要先改为灰度);下图为从灰度状态改为位图时弹出的对话框,选择“50% 阈值”,这个出来的效果相对比较好。

[attach]510[/attach]
这样我们的图片就完成了,看下效果吧!(下图为原图和效果图的对比,图中虽然两个图片差不多大小但是它们的实际大小差很多的)

原图尺寸(左):1181*1181

效果图尺寸(右):128*64   记得将效果图保存,格式为BMP

[attach]511[/attach]

下面我们打开图片取模工具,设置“C语言”、“输出大小:X为128,Y为64”,然后点击“载入图片”,载入我们已经处理好的图片,如下图(关键参数已经用红框标出,如果图片黑白相反,可以勾选输出大小下方的“黑白取反”,然后再次载入图片):

[attach]512[/attach]

如果对载入的图片不满意,还可以自己进行修改,鼠标左键为加黑点,右键为去黑点!!

在确定好图片之后,点击“数据保存”保存为“.h”格式。然后打开你保存的“XXXX.h”文件,文件中的数组(类似下图)就是我们想要的东西了,将它复制到程序中,就可以显示刚才处理的图片了!!!!

[attach]513[/attach]




图片取模工具:

[attach]497[/attach]

汉字内码获取工具:

[attach]498[/attach]

扩展阅读:

[attach]495[/attach]

[attach]500[/attach]


另一个字模提取工具:

[attach]504[/attach]

楼主自己弄着玩的图片,还不错:
[attach]505[/attach]


8位并行接法
8位并行连接示意图:
[attach]874[/attach]

库文件:[attach]875[/attach]更新后库文件:[attach]1594[/attach]






作者: AllBlue    时间: 2013-8-30 10:14
自己顶一个。。
作者: AllBlue    时间: 2014-1-14 16:02
dominix 发表于 2014-1-14 13:32
我弱弱的问一下,这个实验一定要用外部供电吗?我用USB供电,VDD一插 5V 口 UNO板子就灭灯了,电脑也没有 ...

这个应该是您电路短路了,电脑保护USB~检查下电路是否接错~
作者: 小小东熙    时间: 2014-6-4 16:28
标题: RE: Arduino入门教程—拓展实验篇十一 驱动12864液晶
为什么我下载了你的程序,编译通过了,下载到我的板子中之后,我的板子屏幕什么都没显示。我的板子的型号是12864B v2.0
   不显示任何东西,是硬件连接错了还是我的是并口模式的呢》???如果是并口的那么程序该怎么写???硬件该怎么连接呢???能帮我解答一下吗???
作者: AllBlue    时间: 2015-7-30 08:59
本帖最后由 AllBlue 于 2015-7-30 14:02 编辑
13不带刀 发表于 2015-7-30 01:57
你的程序我一编译就提示错误,也没提示什么地方错

编译错误提示框 滑块向上滑动,就可以看到错误提示了!
[attach]1043[/attach]

你这边是否有下载库文件,并添加到IDE的library中。
估计是没有添加库文件的问题,如果不是,需要贴出错误提示看看~

作者: AllBlue    时间: 2015-7-30 14:19
本帖最后由 AllBlue 于 2015-7-31 08:44 编辑
13不带刀 发表于 2015-7-30 13:40
对了,楼主,我用的板式MINI,这会不会有影响

你用的版本现在不支持wiring.h了,本帖用的IDE是1.0.X版。
库文件需要更新了!将LCD12864RSPI.cpp中的#include"wiring.h" 注释掉。
这里有刚刚更改的库:[attach]1051[/attach],我这边1.6.4 版本编译程序通过,但不知道管不管用,测试比较麻烦,你顺便测试下看看是否可以~~

作者: AllBlue    时间: 2015-7-31 08:26
本帖最后由 AllBlue 于 2015-7-31 08:31 编辑
13不带刀 发表于 2015-7-30 21:13
谢谢楼主,程序编译成功了,但是什么都没显示-.-!,能在麻烦哈您不?我的用的事MINI,所以很看不清楚怎么连 ...

给你一张引脚图,你看看你的库中 LCD12864RSPI.h文件中的引脚是如何定义的,我这里的定义如下:

static const int latchPin = 8;
static const int clockPin = 3;  
static const int dataPin = 9;  


然后根据Mini的引脚图连接正确的引脚,应该就可以显示了[attach]1053[/attach]
Mini 引脚图:[attach]1050[/attach]


作者: 摆渡堂主    时间: 2015-8-21 09:59
请问,arduino可以驱动240128液晶吗?咋整?
作者: AllBlue    时间: 2015-8-22 08:17
摆渡堂主 发表于 2015-8-21 09:59
请问,arduino可以驱动240128液晶吗?咋整?

应该是可以的,但是没玩过
作者: kzch    时间: 2015-12-18 16:10
楼主,问你一下,你的程序里那个工作室没有类似取模软件取的代码,而是LCDA.DisplayString(0,0,show0,AR_SIZE(show0));我想要换成别的字应该怎么改啊
作者: AllBlue    时间: 2015-12-21 17:10
kzch 发表于 2015-12-18 16:10
楼主,问你一下,你的程序里那个工作室没有类似取模软件取的代码,而是LCDA.DisplayString(0,0,show0,AR_SI ...

代码:
unsigned char show0[]="YFROBOT"; //YFROBOT
unsigned char show1[]= { 0xB9, 0xA4, 0xD7, 0xF7, 0xCA, 0xD2 };   //工作室
unsigned char show2[]="Touch You Future"; //Touch You Future

汉字取模软件在文章结尾处!下载链接给你:汉字内码获取工具
作者: sunprice    时间: 2016-2-24 16:58
AllBlue 发表于 2015-7-30 14:19
你用的版本现在不支持wiring.h了,本帖用的IDE是1.0.X版。
库文件需要更新了!将LCD12864RSPI.cpp中的#i ...

楼主太赞了,编译成功了,
作者: AllBlue    时间: 2016-4-21 09:49
dongbryant 发表于 2016-4-20 19:20
已经有了库文件了啊,这是怎么回事呢

没图,不知道什么情况!
作者: chnwjian    时间: 2016-4-25 14:02
[attach]1367[/attach]
试了下楼主的程序,显示文字的那一页可以正常显示,但显示图片的时候屏幕就如上图那样,不清楚是怎么回事呢?

作者: AllBlue    时间: 2016-4-26 08:22
chnwjian 发表于 2016-4-25 14:02
试了下楼主的程序,显示文字的那一页可以正常显示,但显示图片的时候屏幕就如上图那样,不清楚是怎么回事 ...

图片是你自己编辑的还是程序中的?按理说,能显示文字,就能显示图片的
作者: chnwjian    时间: 2016-4-26 22:02
AllBlue 发表于 2016-4-26 08:22
图片是你自己编辑的还是程序中的?按理说,能显示文字,就能显示图片的

就是把您程序直接复制了的。
作者: qcydq    时间: 2016-7-29 17:47
好好好好好好好好好好好好
作者: 道源和尚    时间: 2016-8-24 23:25
问楼主一个问题,如何再离开电脑的情况下仍然显示?
我用电池供电时,屏幕只是闪闪发光。。。没有显示写入的文字
作者: AllBlue    时间: 2016-8-25 08:04
道源和尚 发表于 2016-8-24 23:25
问楼主一个问题,如何再离开电脑的情况下仍然显示?
我用电池供电时,屏幕只是闪闪发光。。。没有显示写入 ...

和电脑没关系,只要将程序下载到控制板中即可
作者: 道源和尚    时间: 2016-8-25 13:23
下载好了,连接电脑的话,屏幕正常显示,但是用电池的话,就显示不了了。。。
这很尴尬。。。
作者: 道源和尚    时间: 2016-8-25 13:25
是因为电压不够吗?
作者: AllBlue    时间: 2016-8-25 13:40
道源和尚 发表于 2016-8-25 13:23
下载好了,连接电脑的话,屏幕正常显示,但是用电池的话,就显示不了了。。。
这很尴尬。。。

你的电路连接拍张图片看下呢

作者: 道源和尚    时间: 2016-8-25 14:02
这个样子的

作者: AllBlue    时间: 2016-8-25 14:06
道源和尚 发表于 2016-8-25 14:02
这个样子的

你块控制板USB连接到电脑,可以正常显示!用电池供电不能显示?是显示错误还是直接不亮或者其他?电池电压多少
作者: 道源和尚    时间: 2016-8-25 14:11
屏幕亮的,但是不显示文字和图片,电池电压是9V
作者: AllBlue    时间: 2016-8-25 14:13
道源和尚 发表于 2016-8-25 14:11
屏幕亮的,但是不显示文字和图片,电池电压是9V

点击复位按钮试试呢!如果你确定使用USB供电可以正常使用的话,那估计应该是你的控制板有问题!
作者: 道源和尚    时间: 2016-8-25 14:15
也不行。。。可能真的是板子有问题吧。。。
楼主大好人!!!
作者: 道源和尚    时间: 2016-8-25 15:10
楼主再问你一个问题,如何才能让显示屏停驻在最后一个画面,而不是不断地循环?
作者: AllBlue    时间: 2016-8-25 15:46
本帖最后由 AllBlue 于 2016-8-25 15:48 编辑
道源和尚 发表于 2016-8-25 15:10
楼主再问你一个问题,如何才能让显示屏停驻在最后一个画面,而不是不断地循环?

加标志参数
[C++] 纯文本查看 复制代码
bool flag = false;
void setup() {
  // put your setup code here, to run once:
}
void loop() {
  // put your main code here, to run repeatedly:
if(flag){
  flag = true;
}else
  //只循环这个
}



作者: 丶破晓灬    时间: 2016-9-26 16:17
有没有新的库?用于并行的编译显示 wiring 有错 不知道怎么改啊
作者: AllBlue    时间: 2016-9-30 13:45
丶破晓灬 发表于 2016-9-26 16:17
有没有新的库?用于并行的编译显示 wiring 有错 不知道怎么改啊

将库文件中.cpp的代码

#include <wiring.h>
更改为:
#if ARDUINO <100
#include <wiring.h>
#endif


这样就没问题了!
作者: fyyx221    时间: 2016-10-21 15:31
我研究了好久编译上传成功了,连线也仔细检查了没有问题,可是为什么屏幕上一直一片空白呢,求大佬指教orz
作者: fjiangqing    时间: 2016-10-22 20:51
奇怪我下了好几个都有错误
d:\Arduino_Hex\SPI1.cpp.o: In function `setup':
C:\Program Files (x86)\Arduino/SPI1.ino:144: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:144: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:144: undefined reference to `LCD12864RSPI::Initialise()'
d:\Arduino_Hex\SPI1.cpp.o: In function `LOGO()':
C:\Program Files (x86)\Arduino/SPI1.ino:148: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:148: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:148: undefined reference to `LCD12864RSPI::CLEAR()'
C:\Program Files (x86)\Arduino/SPI1.ino:150: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:150: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:150: undefined reference to `LCD12864RSPI:rawFullScreen(unsigned char*)'
d:\Arduino_Hex\SPI1.cpp.o: In function `NAME()':
C:\Program Files (x86)\Arduino/SPI1.ino:153: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:153: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:153: undefined reference to `LCD12864RSPI::CLEAR()'
C:\Program Files (x86)\Arduino/SPI1.ino:155: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:155: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:155: undefined reference to `LCD12864RSPI:isplayString(int, int, unsigned char*, int)'
C:\Program Files (x86)\Arduino/SPI1.ino:157: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:157: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:157: undefined reference to `LCD12864RSPI:isplayString(int, int, unsigned char*, int)'
C:\Program Files (x86)\Arduino/SPI1.ino:159: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:159: undefined reference to `LCDA'
C:\Program Files (x86)\Arduino/SPI1.ino:159: undefined reference to `LCD12864RSPI:isplayString(int, int, unsigned char*, int)'
collect2.exe: error: ld returned 1 exit status
作者: AllBlue    时间: 2016-10-24 08:24
fjiangqing 发表于 2016-10-22 20:51
奇怪我下了好几个都有错误
d:\Arduino_Hex\SPI1.cpp.o: In function `setup':
C:\Program Files (x86)\Ar ...

程序贴出来看下呢
作者: 497zhi    时间: 2016-12-4 11:19
AllBlue 发表于 2016-9-30 13:45
将库文件中.cpp的代码

#include  

我按照你这个这样改了 但是还是不行
作者: 成大永祥    时间: 2016-12-12 16:08
感謝樓主的資料!
作者: 陳彥甫    时间: 2016-12-29 20:48
不好一思請問一下 稍入成功可是顯示器沒顯示東西怎麼會這樣
作者: tlc114    时间: 2017-1-2 12:03
不错,学习学习
作者: 970205011    时间: 2017-3-15 10:41
谢谢楼主
作者: sh3    时间: 2017-3-15 13:30
谢谢撸主
作者: sh3    时间: 2017-3-15 13:31
撸主辛苦了
作者: wei704603385    时间: 2017-3-15 23:19
正好买了个LCD
下载来玩玩
作者: renfuquan    时间: 2017-3-25 16:14
很好的学习资料,谢谢分享!
作者: yyj3900636    时间: 2017-4-30 11:25
回帖是一种美德!!!!!!~~
作者: 说谎家    时间: 2018-6-22 11:40
出现编译错误,是因为什么呢
Arduino:1.6.6 (Windows 10), 开发板:"Arduino/Genuino Uno"

C:\Users\Jason\Documents\Arduino\libraries\LCD12864RSPI\LCD12864RSPI.cpp:12:21: fatal error: wiring.h: No such file or directory

#include <wiring.h>

                     ^

compilation terminated.

exit status 1
编译有误。

  报告将会包含更多的信息
  "在编译时,输出详细信息"
  在 文件>首选项 中启用

作者: 浪到飞起    时间: 2018-7-29 01:23
感谢楼主分享。。。
作者: hxp317    时间: 2018-8-16 15:54

作者: tiantianyouyou    时间: 2019-5-2 08:07
我一编译就提示错误
作者: AllBlue    时间: 2019-5-3 08:34
tiantianyouyou 发表于 2019-5-2 08:07
我一编译就提示错误

错误提示是什么,库有没有添加
作者: tiantianyouyou    时间: 2019-5-4 20:25
Arduino入门教程—拓展实验篇十一 驱动12864液晶
作者: dataman27    时间: 2019-5-26 09:41
挺好的,原创
作者: dataman27    时间: 2019-5-26 09:49
怎么我就下载不了附件。
作者: azi1974    时间: 2019-6-3 22:55
这个值得参考
作者: ZLS    时间: 2019-6-20 15:42
正好需要,真的很感谢
作者: Arduino31731    时间: 2019-7-10 10:54
不是UNO?
出现这个情况:exit status 1
为开发板 Arduino/Genuino Uno 编译时出错。


作者: zhang1234    时间: 2019-8-3 20:40
有wiring的库文件吗
作者: Arduino31731    时间: 2019-8-6 10:17
Arduino31731 发表于 2019-7-10 10:54
不是UNO?
出现这个情况:exit status 1
为开发板 Arduino/Genuino Uno 编译时出错。

库显示已存在,编译时却显示没有此文件
作者: zh68a11    时间: 2019-12-2 20:46
谢谢楼主,学习了。
作者: selene    时间: 2020-7-28 22:55
谢谢楼主!




欢迎光临 YFROBOT创客社区 (http://www.yfrobot.com.cn/) Powered by Discuz! X3.1