


参考资料网址:http://tech.memoryimprintstudio.com/access-sd-cards-from-tft-lcd-shield-using-arduino-mega-2560-soft-spi/
多年前学习Arduino时,买了一块2.4寸TFT彩色液晶屏模块(2.4“TFT LED shield),带有触摸和SD卡座,支持UNO和Mega2560直插,而无需另外接线。使用其显示和触摸功能时,UNO和Mega2560没有区别。当使用SD卡功能时,由于该扩展板是基于UNO设计的,直插Mega会存在问题。Mega的硬件SPI(Hardware SPI)接口为50,51和52,UNO为11,12和13,在各自板子中的位置不同,所以就会无法使用。

2.4''TFT LCD SHIELD背面
解决Mega使用该扩展板SD卡的方案有两个:一是重新接线,不过这样就失去了直插不用接线的意义;另一个是采用软SPI(Software spi)。这里介绍一下Mega软SPI的方案:
(1)下载SD-Master库,网址:https://github.com/adafruit/SD
(2)将原来安装的SD库删除或者移除。原来安装的SD库文件(Libraries)路径在Arduino IDE的安装路径libraries文件夹中。将下载的SD-Master文件夹复制至libraries文件夹中,并将其改名为SD。
(3)在改名后的SD\utility文件夹中,用记事本分别打开Sd2Card.cpp和Sd2Card.h两个文件,在各自文件中找到 #define USE_SPI_LIB这一行,在前面加入//,都将其变为注释。保存文件。
(4)在Sd2Card.h中找到#define MEGA_SOFT_SPI 0这一行,将0改为1,启用mega软SPI,保存文件。
经过这样操作后,Arduino Mega 2560就可以使用TFT液晶屏中的SD卡模块了。使用IDE版本为1.8.6,例子文件Example08-ShowBMP,SD卡中的图片文件成功显示。

2.4''TFT液晶安装在Mega2560

成功读取SD卡中的图片并显示