将SD卡与Seeed Studio TFT Touch Shield 2.0一起使用

StackUnderflow

我刚刚购买了Seeed的用于Arduino的TFT Touch Shield 2.0,但似乎无法弄清楚如何在保持绘制到屏幕的能力的同时访问SD卡。教程和文档(对我而言)非常微不足道,并且产品站点上的大多数问题似乎都指向同一wiki页面,除了示例文件从卡上绘制位图以外,该页面上没有解释任何有关SD接口的内容。 。

我以前将SD接口与Ethernet Shield一起使用,但是从那以后已经很长时间了,所以我不太记得它的来龙去脉。从我的旧代码看来,对于SD库的正常使用,您只需执行以下操作:

#include <SD.h>

void setup()
{
    pinMode(4, OUTPUT);

    if (!SD.begin(4))
    {
        //Fail
    }

    ...  //Open file, read, etc.
}

要正常使用TFT屏幕(绘制位图除外),您可以这样做:

#include <SD.h>
#include <TFTv2.h>
#include <SPI.h>

void setup()
{
    TFT_BL_ON; //Enable Backlight

    Tft.TFTinit(); //Initialize TFT Screen

    Tft.drawCircle(100, 100, 30,YELLOW); //Draw
}

在Wiki页面上提供的用于从SD卡绘制位图的示例程序中,设置代码如下所示:

#include <SD.h>
#include <TFTv2.h>
#include <SPI.h>

#define chipSelect 4

Sd2Card card;

void setup()
{
  pinMode(11,INPUT);
  pinMode(12,INPUT);
  pinMode(13,INPUT);
  TFT_CS_HIGH;
  pinMode(chipSelect,OUTPUT);
  digitalWrite(chipSelect,HIGH);

  Serial.begin(38400);
  SPI.begin(); 
  Tft.TFTinit();
  //SPI.setClockDivider(SPI_CLOCK_DIV4);
  //SDcard_info();
  /**/
  DDRB |= 0x04;
  card.init(SPI_FULL_SPEED,chipSelect);
  if(!SD.begin(chipSelect))//SPI_QUARTER_SPEED,
  { //53 is used as chip select pin
    Serial.println("failed!");
    while(1);
  }
  Serial.println("SD OK!");

  Tft.setCol(0,239);
  Tft.setPage(0,319);
  Tft.sendCMD(0x2c);//start to write to display ram
  TFT_BL_ON;
}

在位loop()图中,依次使用SD.open(),绘制和使用来关闭位图SD.close()

我假设发生的事情是出于某种与SPI相关的原因将引脚11到13设置为输入,将TFT芯片选择“启用”模式设置为HIGH,然后随后启用了屏幕。启动串行监控器,然后启动SPI,然后启动TFT。这些事情发生后,它会对我执行未知的操作,启动卡,然后使用标准卡初始化方法。它通过准备绘制位图完成并发送此“命令0x2c”,该命令在基础库中经常使用,以“开始编写以显示ram”。

问题是我尝试使用此代码初始化TFT和SD卡,然后尝试绘制第二个示例中所示的图形,但这没有用。我需要能够从SD卡读取字节,然后能够在屏幕上绘制简单的图形并重复。

所以我的问题是:曾经使用过此防护罩或对此有经验的人是否能够解释应该如何编写代码以允许同时使用SD卡和屏幕,或者初始化和SPI流程如何工作以实现这一目标?可能的?

预先感谢您的回答!

(此外,如果这不是此问题的正确SE网站,请随时进行相应迁移。)

StackUnderflow

实际上,该问题的解决方案非常简单,以前合并源文件时,我肯定做错了什么。

初始化代码如下所示:

#include <SD.h>
#include <TFTv2.h>
#include <SPI.h>

Sd2Card card;

void setup()
{
    pinMode(11, INPUT); //Pin mode changes; not sure what for
    pinMode(12, INPUT);
    pinMode(13, INPUT);
    TFT_CS_HIGH; //Something with chipselect and the TFT
    pinMode(4, OUTPUT); //Set chipselect pin to OUTPUT
    digitalWrite(4, HIGH); //Set chipselect mode

    SPI.begin(); //Start SPI
    Tft.TFTinit(); //Initialize the TFT
    TFT_BL_ON; //Turn on the TFT Backlight
    Serial.begin(9600); //Start serial output

    DDRB |= 0x04; //Some sort of processor IO port?
    if(!SD.begin(4)) //Start the SD card
    {
        while(true) { } //Fail
    }
}

它基本上是位图初始化代码,最后没有多余的TFT命令。此后,可以根据需要使用屏幕和SD卡。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将SD卡与Seeed Studio TFT Touch Shield 2.0一起使用

来自分类Dev

将XUnit与Visual Studio Online一起使用

来自分类Dev

将SDL2与CMake一起使用

来自分类Dev

将Go lang与MSYS2一起使用

来自分类Dev

将Select 2与form_for rails一起使用

来自分类Dev

将SFML网络与SDL2一起使用

来自分类Dev

将Angular 2与Electron一起使用(Angular CLI)

来自分类Dev

将PIVOT与2个相关表一起使用

来自分类Dev

将PM2与CircleCI一起使用

来自分类Dev

将DirectShow与Direct2D一起使用

来自分类Dev

将MongoDB与Play 2框架一起使用

来自分类Dev

将Codekit 2与Susy和Breakpoint一起使用

来自分类Dev

将SFML网络与SDL2一起使用

来自分类Dev

Symfony2,将QueryBuilder与KnpPaginatorBundle一起使用

来自分类Dev

将find与2组变量一起使用

来自分类Dev

将外部框架与angular2一起使用

来自分类Dev

将 angular2-busy 与 ActivatedRoute 一起使用

来自分类Dev

是否可以将Visual Studio Code与Visual Studio Team Services一起使用(TFS在线)?

来自分类Dev

使用wifi Shield将arduino连接到Android

来自分类Dev

如何使Dagger 2与Android Studio Java库项目一起使用

来自分类Dev

我如何使Dagger 2与Android Studio Java库项目一起使用

来自分类Dev

将IntelliJ与Android插件一起使用,而不是使用Android Studio

来自分类Dev

我可以将4台显示器与2张SLI卡一起使用吗

来自分类Dev

是否可以将Visual Studio性能分析与服务结构一起使用?

来自分类Dev

将Web性能测试(Visual Studio)与JSON和数据源一起使用

来自分类Dev

Android Studio-将Gradle与文件的``传统''顺序一起使用

来自分类Dev

将ASP.NET 5与Visual Studio 2013社区版一起使用

来自分类Dev

将CustomParameter与Visual Studio多项目模板一起使用

来自分类Dev

将ProGuard / Dexguard与多个Android Studio模块一起使用

Related 相关文章

  1. 1

    将SD卡与Seeed Studio TFT Touch Shield 2.0一起使用

  2. 2

    将XUnit与Visual Studio Online一起使用

  3. 3

    将SDL2与CMake一起使用

  4. 4

    将Go lang与MSYS2一起使用

  5. 5

    将Select 2与form_for rails一起使用

  6. 6

    将SFML网络与SDL2一起使用

  7. 7

    将Angular 2与Electron一起使用(Angular CLI)

  8. 8

    将PIVOT与2个相关表一起使用

  9. 9

    将PM2与CircleCI一起使用

  10. 10

    将DirectShow与Direct2D一起使用

  11. 11

    将MongoDB与Play 2框架一起使用

  12. 12

    将Codekit 2与Susy和Breakpoint一起使用

  13. 13

    将SFML网络与SDL2一起使用

  14. 14

    Symfony2,将QueryBuilder与KnpPaginatorBundle一起使用

  15. 15

    将find与2组变量一起使用

  16. 16

    将外部框架与angular2一起使用

  17. 17

    将 angular2-busy 与 ActivatedRoute 一起使用

  18. 18

    是否可以将Visual Studio Code与Visual Studio Team Services一起使用(TFS在线)?

  19. 19

    使用wifi Shield将arduino连接到Android

  20. 20

    如何使Dagger 2与Android Studio Java库项目一起使用

  21. 21

    我如何使Dagger 2与Android Studio Java库项目一起使用

  22. 22

    将IntelliJ与Android插件一起使用,而不是使用Android Studio

  23. 23

    我可以将4台显示器与2张SLI卡一起使用吗

  24. 24

    是否可以将Visual Studio性能分析与服务结构一起使用?

  25. 25

    将Web性能测试(Visual Studio)与JSON和数据源一起使用

  26. 26

    Android Studio-将Gradle与文件的``传统''顺序一起使用

  27. 27

    将ASP.NET 5与Visual Studio 2013社区版一起使用

  28. 28

    将CustomParameter与Visual Studio多项目模板一起使用

  29. 29

    将ProGuard / Dexguard与多个Android Studio模块一起使用

热门标签

归档