如何更改lcd库文件引脚接线
买了一个lcd,给了对应引脚接线图,但是貌似是只能按照他们给的引脚去接,我想自己更改引脚,如下:比如,我想把LCD_D3接到mega的20引脚而不是3号引脚,如何更改呢,直接更改库文件吗,下面有卖家提供的库文件,里面我看了看,没有明显的LCD_D3后面接那个引脚的显示啊,倒是有LCD_RTS引脚更改的地方,求大神解答,如何更改lcd库文件引脚接线 之前用过“KEIL”改过底层的“XX.h”文件。 Adfruit_GFX,这个库算是Adfruit的LCD通用库,但是如果你要用它,就得同时下载一个与你的LCD相对应的库文件配套使用才可以的。
比如你要用NOKIA5110,就得下一个PCD8544的库。
所以,你得问一下你的LCD用的是什么驱动芯片,下载对应的库 wwwusr 发表于 2015-12-21 18:54 static/image/common/back.gif
Adfruit_GFX,这个库算是Adfruit的LCD通用库,但是如果你要用它,就得同时下载一个与你的LCD相对应的库文件配 ...
用的是AdfruitTFT_LCD的库,ILI9341液晶驱动,2.4寸的屏幕,数字引脚在给的代码里没有,怎样自定义数字引脚输入呢
// The control pins for the LCD can be assigned to any digital or
// analog pins...but we'll use the analog pins as this allows us to
// double up the pins with the touch screen (see the TFT paint example).
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin
// When using the BREAKOUT BOARD only, use these 8 data lines to the LCD:
// For the Arduino Uno, Duemilanove, Diecimila, etc.:
// D0 connects to digital pin 8(Notice these are
// D1 connects to digital pin 9 NOT in order!)
// D2 connects to digital pin 2
// D3 connects to digital pin 3
// D4 connects to digital pin 4
// D5 connects to digital pin 5
// D6 connects to digital pin 6
// D7 connects to digital pin 7
// For the Arduino Mega, use digital pins 22 through 29
// (on the 2-row header at the end of the board). 如果你使用328 的话,就不要改了,因为端口全用完了。
如果你使用2560 的话,是可以改的。因为我无法下载这个库,所以只能拿SSD_1306 的库做比喻。又因为不同的库分别由不同的人来写,库中的内容和风格也许大不相同,使用方法也就有所不同。
一般来说,一个 设备驱动 库文件 要适应不同的MCU ,就要能在程序中修改各个驱动端口,你用的这个库也不应该有例外。下面我用 驱动SSD_1306 OLED屏的库为例说一下。也许有错,不要照搬。
#include <Adafruit_GFX.h> //这是 Adafruit 的 通用 绘图 库文件,他要配合对应的 设备驱动库 一起工作,
// 不能单独使用。
#include <Adafruit_SSD1306.h> // 这个是他能配合的设备驱动库文件,这个设备是 OLED 显示屏,型号是:SSD_1306,
// If using software SPI (the default case): // 注释:如果你要使用 软件 SPI 通讯 驱动方式,那么就用下面的宏定义确定端口。
#define OLED_MOSI 9 // 主出从入 数据端口,在这里修改数字 9 也就修改了 端口定义。
#define OLED_CLK 10 // 下面几个都是。
#define OLED_DC 11
#define OLED_CS 12
#define OLED_RESET13
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS); // 这一句与库文件里的 类 相对应。
上面括号里的 每一句都对应着 一个 端口号,就是上面的宏定义。他的顺序对应着 库文件里相应的语句。你的显示屏是8 位数据总线,数据端口号应该是D0 --- D7, 应该还有类似#define LCD_D3 x 之类的语句, 这个x 就是显示屏 数据端口 D3 要对应的 Arduino 的端口号,在你的程序里可能要定义成#define LCD_Dn x的形式,Dn 指的是 D0 ---- D7 的某一个,是不是这个形式,我不确定,但是可以检验。打开你的设备驱动 库文件目录,你的帖子里提到是 AdfruitTFT_LCD 其下有一个子目录,...\examples \这里有个示例文件,打开他, 有类似于上面提到的 长长的一串 宏定义,有一句注释语句说明了其下是端口定义,每一句宏定义后面的数字就是要对应的 Arduino 的 端口号, 因为我没有见到 库文件,按Adafruit官方的习惯做法,应该是这样,
如果你的示例程序里不是这样,也不奇怪。比如u8glib 库,他就把 会图库和 设备驱动库 放在了一块,只包含一个 u8glib.h就行了,但是 在 示例程序里 的 样式 是一样的,比如:
#include "U8glib.h"
// setup u8g object, please remove comment from one of the following constructor calls
// IMPORTANT NOTE: The following list is incomplete. The complete list of supported
// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device
下面有 长长的 一串 设备驱动 列表,与你类似的有:(其实你的屏一定可以在库里找到)
//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16
去掉 u8glib 前面的 注释符 // ,这一句设备驱动 语句就起作用了,// 8Bit Com: 后面的 符号 就是 对应端口的定义,但是他 D0 --- D7 对应的 端口号不能改,因为括号里没有选项,非要改的话就只能去库里改了。而18, 17,19,,16 可以改,他的顺序和功能 由 他的注释里说明了。
按你说的,你使用mega,他的端口非常多,D0----D7 就不要改了,但是其他端口最好改一下,因为它们使用了 模拟端口,A0 ---- A4 ,(这是在使用328 芯片的不得已做法)。
如果 英语好的话,请到下述网站看看:
https://www.adafruit.com/products/1770 老来疯 发表于 2015-12-22 04:12 static/image/common/back.gif
如果你使用328 的话,就不要改了,因为端口全用完了。
如果你使用2560 的话,是可以改的。因为我无法 ...
谢谢大神细致的讲解,用c编程软件打开库文件,发现mega2560的D0~D7是22-29,CS、RS这些可以随时从arduino IDE上修改。现在依然不行,屏幕不会有显示,用led灯一格一格的测试,感觉有些接口接触不良:'(,加个好友
我也是新手,不一定能解决你的问题。特别是不知道你的程序,不知道你的 硬件连接的情况下。更无从说起是哪的问题。
解决问题的思路:
1.首先要确定 硬件是好的。
2.用推荐的方法(用库文件推荐的例程)编译程序,通过后上传的目标板。看是否能正常点亮。
3.如果能正常点亮再试着变动端口接法。
按顺序一步一步的做,确保上一步是正确的。
你的屏是彩色的,好像是可以用SPI直接驱动,这样就省了哪8根 数据接口。用4根线 就可以驱动了。 老来疯 发表于 2015-12-27 01:23 static/image/common/back.gif
我也是新手,不一定能解决你的问题。特别是不知道你的程序,不知道你的 硬件连接的情况下。更无从说起是哪的 ...
初步估计是买的板子某些接口接触不良·····,用UNO板子就行,mega就是不行,o(︶︿︶)o 唉,既然这样,我就得用tx,rx通信,从mega采集数据传到UNO上,在通过UNO显示········谢谢你的回答,哥们 老来疯 发表于 2015-12-27 01:23 static/image/common/back.gif
我也是新手,不一定能解决你的问题。特别是不知道你的程序,不知道你的 硬件连接的情况下。更无从说起是哪的 ...
初步估计是买的板子某些接口接触不良·····,用UNO板子就行,mega就是不行,o(︶︿︶)o 唉,既然这样,我就得用tx,rx通信,从mega采集数据传到UNO上,在通过UNO显示········谢谢你的回答,哥们
页:
[1]